:root{color:#15231d;background:#f3f1e9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #15231d;--muted: #65716b;--paper: #fbfaf6;--canvas: #f3f1e9;--line: #dcded5;--green: #0d684c;--green-dark: #084c38;--green-soft: #e2efe7;--lime: #d7eb75;--red: #b74437;--red-soft: #f8e7e3;--shadow: 0 16px 50px rgba(31, 45, 38, .08)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}::selection{background:var(--lime);color:var(--ink)}:focus-visible{outline:3px solid rgba(13,104,76,.32);outline-offset:2px}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Avenir Next,Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.04em}h1{font-size:clamp(2.25rem,5vw,4.7rem);line-height:.98;margin-bottom:1.2rem}h2{font-size:1.45rem;margin-bottom:.35rem}h3{font-size:1.02rem}.eyebrow{margin:0 0 .6rem;color:var(--green);font-weight:700;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase}.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-family:Avenir Next,Inter,ui-sans-serif,system-ui,sans-serif;font-size:.93rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;background:var(--green)}.brand-mark .icon{width:21px}.button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:8px;padding:.67rem 1rem;background:none;text-decoration:none;font-size:.84rem;font-weight:700;cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}.button:hover{transform:translateY(-1px)}.button-primary{color:#fff;background:var(--green)}.button-primary:hover{background:var(--green-dark)}.button-secondary{border-color:#bec8c1;background:var(--paper)}.button-secondary:hover,.button-quiet:hover{background:#e8ebe4}.button-quiet{color:var(--muted)}.button-danger{color:#fff;background:var(--red)}.button-danger:hover{background:#91352c}.home-shell{width:min(1180px,calc(100% - 48px));margin:0 auto;padding-bottom:40px}.home-header,.app-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(92,107,97,.18)}.header-actions{display:flex;gap:.25rem;align-items:center}.hero{min-height:380px;padding:80px 0 64px;max-width:860px}.hero h1{max-width:820px}.hero-copy{max-width:670px;color:var(--muted);font-size:1.08rem;line-height:1.7}.home-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;align-items:start}.panel{border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:var(--shadow)}.create-panel,.scenarios-panel{min-height:355px;padding:30px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:24px}.section-heading h2{margin-bottom:.3rem}.section-heading p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.5;font-size:.9rem}.step-badge,.count-badge{display:grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:.76rem;font-weight:700}label,.field-group{display:flex;flex-direction:column;gap:.45rem;color:#33423a;font-size:.8rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #c6ccc5;border-radius:7px;padding:.72rem .78rem;background:#fff;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input,select{min-height:44px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #0d684c1f}label small,.field-hint{color:#78837d;font-size:.74rem;font-weight:400;line-height:1.45}.field-hint{margin:.6rem 0 1.2rem}.form-error{margin:.7rem 0;padding:.65rem .75rem;color:#8a2e25;border-left:3px solid var(--red);background:var(--red-soft);font-size:.8rem}.create-panel form .button{margin-top:.4rem}.scenario-list{border-top:1px solid var(--line)}.scenario-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;padding:16px 4px;border-bottom:1px solid var(--line);text-decoration:none}.scenario-row:hover strong{color:var(--green)}.scenario-row>.icon{color:#96a099;width:18px}.scenario-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:9px;color:var(--green);background:var(--green-soft)}.scenario-row strong,.scenario-row small{display:block}.scenario-row strong{margin-bottom:.25rem;font-size:.92rem}.scenario-row small{color:var(--muted);font-size:.73rem}.empty-compact{min-height:190px;display:grid;place-content:center;text-align:center;color:var(--muted)}.empty-compact p{margin:0 0 .3rem;color:var(--ink);font-weight:700}.empty-compact span{font-size:.82rem}.privacy-note{display:flex;align-items:flex-start;justify-content:center;gap:.65rem;max-width:700px;margin:36px auto 0;color:#6c7871;font-size:.75rem;line-height:1.5;text-align:left}.privacy-note>span{color:var(--green);font-size:.55rem;margin-top:.28rem}.privacy-note p{margin:0}.app-shell{min-height:100vh}.app-header{padding:0 max(24px,calc((100vw - 1180px)/2));background:#fbfaf6b8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.scenario-switcher{margin-left:auto}.scenario-switcher select{min-height:38px;width:auto;min-width:150px;padding:.45rem 2.2rem .45rem .7rem;background-color:transparent;font-size:.8rem;font-weight:700}.view-nav{min-height:58px;display:flex;justify-content:center;align-items:stretch;gap:2rem;border-bottom:1px solid var(--line);background:var(--paper)}.view-nav a{position:relative;display:flex;align-items:center;gap:.5rem;color:var(--muted);text-decoration:none;font-size:.82rem;font-weight:700}.view-nav a.active{color:var(--green)}.view-nav a.active:after{position:absolute;content:"";left:0;right:0;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--green)}.view-nav .icon{width:17px}.content{width:min(1040px,calc(100% - 48px));margin:0 auto;padding:58px 0 72px}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:38px}.page-title h1{font-size:clamp(2.3rem,4vw,3.8rem);margin-bottom:0}.page-title>div>p:not(.eyebrow){margin:1rem 0 0;color:var(--muted)}.horizon-label{display:flex;align-items:center;gap:.7rem;min-width:190px;color:var(--ink);font-size:.8rem;font-weight:700}.horizon-label .icon{width:30px;height:30px;padding:6px;border-radius:50%;color:var(--green);background:var(--green-soft)}.horizon-label small{color:var(--muted);font-weight:400}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:58px}.summary-card{min-width:0;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.summary-card>span,.summary-card small{display:block;color:var(--muted);font-size:.75rem}.summary-card strong{display:block;overflow-wrap:anywhere;margin:.55rem 0 .35rem;font-family:Avenir Next,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(1.25rem,2vw,1.75rem);letter-spacing:-.04em}.summary-card.positive strong{color:var(--green)}.summary-card.negative strong{color:var(--red)}.timeline-section{margin:0 auto}.timeline-section>.section-heading{margin-bottom:16px}.timeline-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.timeline-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed;font-size:.8rem}.timeline-date-column{width:112px}.timeline-amount-column{width:140px}.timeline-balance-column{width:160px}.timeline-table th,.timeline-table td{padding:10px 14px;text-align:left;vertical-align:middle}.timeline-table thead{background:#ebede6}.timeline-table th{color:var(--muted);font-size:.67rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.timeline-table th+th,.timeline-table td+td{border-left:1px solid var(--line)}.timeline-table td{border-top:1px solid var(--line)}.timeline-table tbody tr:hover{background:#f0f2eb}.timeline-date{color:var(--muted);font-size:.73rem;white-space:nowrap;font-variant-numeric:tabular-nums}.transaction-main{min-width:0}.transaction-main>strong{display:block;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.transaction-main p{margin:.2rem 0 0;color:var(--muted);font-size:.71rem;line-height:1.35;overflow-wrap:anywhere}.transaction-main .transaction-tag{margin-top:.25rem}.transaction-tag{display:inline-flex;padding:.15rem .35rem;border-radius:4px;color:var(--muted);background:#ebede8;font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.transaction-tag.expense{color:#9b4932;background:#f7e9e1}.transaction-amount{font-size:.82rem;font-weight:700;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.transaction-amount.income{color:var(--green)}.transaction-amount.expense{color:#9b4932}.timeline-table .timeline-balance,.timeline-table .timeline-number{text-align:right;white-space:nowrap}.timeline-balance{background:#65716b09;font-weight:600;font-variant-numeric:tabular-nums}.timeline-balance.balance-negative{color:var(--red);background:var(--red-soft)}.timeline-base{background:#edf3ec}.timeline-marker{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.timeline-marker strong{font-weight:600}.timeline-end{color:var(--muted);font-size:.73rem}.timeline-empty{margin:14px 0 0;color:var(--muted);font-size:.8rem}.timeline-table .timeline-month-heading th{padding-block:14px;border-top:2px solid #bac9bf;background:var(--green-soft);color:var(--green-dark);text-transform:none;letter-spacing:0;font-size:.9rem}.timeline-table tbody:first-of-type .timeline-month-heading th{border-top:1px solid var(--line)}.timeline-month-label{display:flex;align-items:center;gap:10px}.timeline-month-label span{border:1px solid #c8d9cd;border-radius:4px;padding:.15rem .35rem;color:var(--muted);font-size:.62rem;font-weight:500}.timeline-month-total{background:#f0f2eb}.timeline-month-total th{border-top:1px solid var(--line);font-size:.62rem}.timeline-month-total td{padding-block:12px}.timeline-month-net{display:flex;align-items:center;gap:10px}.timeline-month-net span{color:var(--muted);font-size:.72rem;white-space:nowrap}.timeline-month-net strong{font-variant-numeric:tabular-nums;white-space:nowrap}.timeline-month-net .positive{color:var(--green)}.timeline-month-net .negative{color:var(--red)}.timeline-month-empty{color:var(--muted);font-size:.73rem}.empty-state{display:grid;place-items:center;min-height:380px;padding:45px;text-align:center}.empty-state h2{margin:1rem 0 .45rem}.empty-state p{max-width:420px;color:var(--muted)}.large-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;color:var(--green);background:var(--green-soft)}.config-content{max-width:1040px}.settings-card{margin-bottom:58px;padding:28px}.currency-pill{padding:.4rem .65rem;border:1px solid var(--line);border-radius:20px;color:var(--muted);font-size:.7rem;font-weight:700}.settings-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:start;gap:16px;padding-top:20px;border-top:1px solid var(--line)}.settings-form>label,.settings-form>.field-group{min-width:0;line-height:.95rem}.settings-form .button{min-height:44px;margin-top:1.4rem}.input-prefix,.input-suffix{position:relative;display:block}.input-prefix em,.input-suffix em{position:absolute;top:50%;z-index:1;transform:translateY(-50%);color:var(--muted);font-size:.76rem;font-style:normal;font-weight:700;pointer-events:none}.input-prefix em{left:.75rem}.input-prefix input{padding-left:1.8rem}.input-suffix em{right:.75rem}.input-suffix input{padding-right:4.4rem}.day-rule-fields{display:grid;grid-template-columns:minmax(0,1fr) 70px;gap:7px}.day-rule-fields select:only-child{grid-column:1 / -1}.label-text{min-height:.95rem}.config-section{margin-bottom:60px}.config-section>.section-heading{align-items:flex-end;padding-bottom:18px;border-bottom:1px solid var(--line)}.record-list{border-bottom:1px solid var(--line)}.record-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px 4px;border-top:1px solid var(--line)}.record-list .record-row:first-child{border-top:0}.record-symbol{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;font-size:1.1rem;font-weight:700}.record-symbol .icon{width:18px}.record-symbol.snapshot{color:#506259;background:#e5e8e2}.record-symbol.income{color:var(--green);background:var(--green-soft)}.record-symbol.expense{color:#9b4932;background:#f7e9e1}.record-primary{min-width:0}.record-primary strong,.record-primary span{display:block}.record-primary strong{font-size:.88rem}.record-primary span{overflow:hidden;margin-top:.3rem;color:var(--muted);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.record-primary em{display:inline-block;margin-left:.3rem;padding:.16rem .35rem;border-radius:3px;color:var(--green);background:var(--green-soft);font-size:.6rem;font-style:normal;font-weight:700;text-transform:uppercase}.record-value{font-family:Avenir Next,Inter,ui-sans-serif,system-ui,sans-serif;font-size:.88rem;font-weight:700;white-space:nowrap}.record-value.income{color:var(--green)}.record-value.expense{color:#9b4932}.record-actions{display:flex;gap:.15rem}.record-actions button{border:0;padding:.4rem;color:var(--muted);background:none;font-size:.72rem;font-weight:700;cursor:pointer}.record-actions button:hover{color:var(--green)}.record-actions button.danger-link:hover{color:var(--red)}.empty-list{display:flex;align-items:center;gap:1rem;min-height:100px;padding:16px 4px;color:var(--muted);font-size:.83rem}.empty-list .large-icon{width:38px;height:38px}.empty-list .large-icon .icon{width:17px}.empty-list p{margin:0}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:80px;padding:24px 0;border-top:1px solid #deb9b2;border-bottom:1px solid #deb9b2}.danger-zone h2{margin:0 0 .3rem;font-size:1rem;color:var(--red)}.danger-zone p{margin:0;color:var(--muted);font-size:.78rem}.dialog-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow-y:auto;padding:24px;background:#121e189e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fade-in .16s ease}.dialog{width:min(470px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:25px;border-radius:14px;background:var(--paper);box-shadow:0 24px 80px #05120c59;animation:rise-in .2s ease}.dialog-wide{width:min(660px,100%)}.dialog>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:24px;padding-bottom:17px;border-bottom:1px solid var(--line)}.dialog>header h2{margin:0}.dialog>header button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;color:var(--muted);background:#e9ebe6;font-size:1.4rem;cursor:pointer}.dialog form{display:grid;gap:17px}.dialog-actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.optional{float:right;color:var(--muted);font-size:.67rem;font-weight:400}fieldset{display:grid;gap:15px;margin:3px 0 0;padding:16px;border:1px solid var(--line);border-radius:9px}legend{padding:0 .4rem;color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.segmented{display:grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:8px;background:#e9ebe5}.segmented button{min-height:40px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:.78rem;font-weight:700;cursor:pointer}.segmented button.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px #1c262014}.segmented button.active.income{color:var(--green)}.segmented button.active.expense{color:#9b4932}.segmented.small{width:260px}.segmented.small button{min-height:34px}.recurrence-fields{display:grid;gap:15px}.dialog-intro{color:var(--muted);font-size:.85rem;line-height:1.55}.import-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.import-summary>div{padding:16px;border-radius:9px;background:var(--green-soft)}.import-summary>div.warning{background:var(--red-soft)}.import-summary strong,.import-summary span{display:block}.import-summary strong{font-family:Avenir Next,Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.5rem}.import-summary span{color:var(--muted);font-size:.72rem}.import-list{max-height:210px;overflow-y:auto;border-top:1px solid var(--line)}.import-list>div{display:flex;justify-content:space-between;gap:1rem;padding:12px 2px;border-bottom:1px solid var(--line);font-size:.78rem}.import-list span{color:var(--muted)}.warning-note{margin:16px 0 0;color:var(--red);font-size:.75rem}.loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:1rem;padding:24px;color:var(--muted);text-align:center}.loading h1{margin:.5rem 0 0;color:var(--ink);font-size:2rem}.loading p{margin:0 0 .6rem}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{transform:translateY(8px);opacity:.85}}@media(max-width:820px){.home-grid{grid-template-columns:1fr}.hero{min-height:330px;padding-top:65px}.summary-grid,.settings-form{grid-template-columns:1fr 1fr}}@media(max-width:620px){.home-shell,.content{width:min(100% - 28px,1040px)}.home-header,.app-header{min-height:68px}.brand>span:last-child{display:none}.home-header .button,.desktop-actions .button{padding-inline:.65rem}.home-header .button .icon+*,.desktop-actions .button .icon+*{display:none}.hero{min-height:300px;padding:54px 0 45px}.hero h1{font-size:2.7rem}.hero-copy{font-size:.95rem}.create-panel,.scenarios-panel,.settings-card{padding:21px}.app-header{padding:0 14px}.scenario-switcher{margin-left:0;flex:1}.scenario-switcher select{width:100%;min-width:0}.desktop-actions{display:flex;gap:0}.desktop-actions .button{min-width:38px;width:38px;padding-inline:0;overflow:hidden;font-size:0}.desktop-actions .button .icon{width:18px}.view-nav{min-height:54px;gap:3rem}.content{padding:40px 0 55px}.page-title{display:block;margin-bottom:30px}.page-title h1{font-size:2.45rem}.horizon-label{margin-top:18px}.summary-grid{grid-template-columns:1fr;gap:9px;margin-bottom:45px}.summary-card:first-child{grid-column:auto}.summary-card{padding:18px}.timeline-section>.section-heading{margin-left:4px}.settings-form{grid-template-columns:1fr}.settings-form .button{width:100%;margin-top:0}.config-section>.section-heading{display:block}.config-section>.section-heading .button{width:100%;margin-top:16px}.record-row{grid-template-columns:40px minmax(0,1fr) auto;gap:10px}.record-value{grid-column:2}.record-actions{grid-column:3;grid-row:1 / span 2;flex-direction:column;align-items:flex-end}.danger-zone{align-items:flex-start;flex-direction:column}.danger-zone .button{width:100%}.dialog-backdrop{align-items:end;padding:0}.dialog,.dialog-wide{width:100%;max-height:92vh;border-radius:16px 16px 0 0;padding:21px}.form-grid{grid-template-columns:1fr}.segmented.small{width:100%}.dialog-actions .button{flex:1}.privacy-note{padding-inline:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
