:root{--bg:#f6f7f3;--paper:#fff;--ink:#20352f;--muted:#7f8983;--line:#e8ebe5;--green:#276b52;--pale:#e8f2ec;--orange:#c47a36;--red:#c45148;--shadow:0 12px 34px #23362b0b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:246px 1fr}.sidebar{background:#fff;border-right:1px solid var(--line);padding:30px 18px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:22px;font-weight:700;text-decoration:none;letter-spacing:-1px;padding:0 7px 42px}.brandmark{width:36px;height:36px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:500}.brand small{display:block;font-size:8px;letter-spacing:1.3px;color:var(--muted);font-weight:600}.sidebar nav{display:grid;gap:5px}.sidebar nav button,.text-button{border:0;background:none;text-align:left;color:#78847d;padding:12px 13px;border-radius:10px;cursor:pointer;font:inherit}.sidebar nav button{display:flex;gap:13px;align-items:center}.sidebar nav button.active,.sidebar nav button:hover{background:var(--pale);color:var(--green);font-weight:600}.sidebar nav button:first-letter{font-size:18px}.side-bottom{margin-top:auto;display:grid;gap:6px}.save-indicator{border-top:1px solid var(--line);padding:19px 7px 13px;display:flex;gap:10px;align-items:flex-start;font-size:12px;font-weight:600}.save-indicator i{width:8px;height:8px;border-radius:50%;background:#6eaa79;margin-top:5px}.save-indicator small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.text-button{font-size:12px;padding:8px}.text-button:hover{color:var(--green);background:var(--bg)}.import-label{position:relative}.import-label input{position:absolute;width:1px;height:1px;opacity:0}main{max-width:1320px;width:100%;padding:36px 48px 20px;margin:0 auto}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}h1{font-size:28px;letter-spacing:-.8px;margin:3px 0 0}.eyebrow{font-size:10px;color:#89948d;letter-spacing:1.5px;font-weight:700}.header-actions{display:flex;gap:9px}.btn{border:1px solid transparent;padding:10px 15px;border-radius:9px;font:600 13px inherit;cursor:pointer;font-size:13px}.primary{background:var(--green);color:#fff}.primary:hover{background:#1d5942}.secondary{border-color:var(--line);background:#fff;color:var(--ink)}.secondary:hover{border-color:#b5c9bb}.mobile-brand{display:none}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:17px}.card,.panel,.list-panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.card{padding:18px 19px}.card-label{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.card-icon{color:var(--green);background:var(--pale);width:27px;height:27px;border-radius:8px;display:grid;place-items:center}.card-value{font-size:25px;letter-spacing:-.8px;font-weight:650;margin:13px 0 4px}.card-note{font-size:11px;color:var(--muted)}.negative{color:var(--red)!important}.positive{color:var(--green)!important}.content-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.panel{padding:20px;margin-bottom:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.panel h2,.list-panel h2{font-size:15px;margin:0;letter-spacing:-.2px}.subtle{font-size:11px;color:var(--muted)}.forecast-controls{display:flex;gap:4px;background:var(--bg);padding:3px;border-radius:8px}.forecast-controls button{border:0;background:transparent;color:var(--muted);padding:6px 10px;border-radius:6px;font-size:11px;cursor:pointer}.forecast-controls button.active{background:white;color:var(--green);box-shadow:0 1px 3px #20352f12;font-weight:600}.chart-wrap{height:200px;position:relative}.chart-wrap canvas{width:100%;height:100%}.chart-legend{display:flex;gap:15px;color:var(--muted);font-size:10px;margin-top:8px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:5px}.legend-dot.red{background:#d17d66}.alert{padding:12px 14px;background:#fff5ef;border:1px solid #f2dfd2;border-radius:10px;font-size:12px;color:#995a39;margin-bottom:15px}.alert.good{background:#eef6ef;border-color:#dfebdf;color:#477551}.event-list{display:grid}.event-row{display:grid;grid-template-columns:46px 1fr auto;gap:11px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.datebox{width:42px;height:44px;border-radius:9px;background:var(--bg);display:grid;align-content:center;text-align:center;font-size:10px;color:var(--muted)}.datebox b{font-size:16px;color:var(--ink);line-height:1.1}.event-name{font-size:12px;font-weight:600}.event-detail{font-size:10px;color:var(--muted);margin-top:3px}.amount{font-size:12px;font-weight:650;white-space:nowrap}.tag{font-size:9px;color:var(--muted);padding:4px 7px;background:var(--bg);border-radius:5px}.paid{color:var(--green)}.list-panel{padding:20px;margin-bottom:16px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px}.toolbar-actions{display:flex;gap:8px}.search{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:12px;min-width:190px}.data-row{display:grid;grid-template-columns:minmax(150px,2fr) 1fr 1fr 1fr auto;gap:12px;align-items:center;padding:14px 2px;border-top:1px solid var(--line);font-size:12px}.data-row.head{border:0;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;padding-top:7px}.row-title{font-weight:600}.row-sub{color:var(--muted);font-size:10px;margin-top:3px}.actions{display:flex;gap:5px;justify-content:flex-end}.icon-btn{border:1px solid var(--line);background:white;color:var(--muted);width:30px;height:30px;border-radius:7px;cursor:pointer}.icon-btn:hover{color:var(--green);border-color:#b5c9bb}.icon-btn.danger:hover{color:var(--red)}.status{border-radius:20px;padding:5px 8px;background:#f1f3ef;color:#778078;font-size:10px;white-space:nowrap}.status.paid{background:#e8f2ec}.status.overdue{background:#fbecea;color:var(--red)}.empty{text-align:center;padding:35px 10px;color:var(--muted);font-size:12px}.empty b{display:block;color:var(--ink);font-size:14px;margin-bottom:5px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-day{min-height:84px;padding:8px;border:1px solid var(--line);border-radius:9px;background:white;font-size:10px}.cal-day.muted{background:transparent;color:#aeb5af}.cal-day.today{border-color:var(--green)}.cal-num{font-weight:600}.cal-item{background:var(--pale);color:var(--green);padding:3px 4px;border-radius:4px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.cal-item.exp{background:#fff0eb;color:#a46146}.toggle-row{display:flex;align-items:center;gap:9px}.toggle{width:34px;height:19px;border-radius:20px;background:#dfe5df;position:relative;cursor:pointer;border:0}.toggle:after{content:"";position:absolute;width:13px;height:13px;top:3px;left:3px;border-radius:50%;background:white;transition:.15s}.toggle.on{background:var(--green)}.toggle.on:after{left:18px}form{padding:24px 25px}dialog{border:0;padding:0;border-radius:16px;width:min(480px,calc(100vw - 28px));box-shadow:0 25px 80px #17251f40}dialog::backdrop{background:#14211b65;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-head h2{margin:3px 0;font-size:21px}.close{border:0;background:var(--bg);width:31px;height:31px;border-radius:8px;font-size:21px;color:var(--muted);cursor:pointer}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:600;color:#58675f}.field input,.field select{width:100%;border:1px solid #dfe4de;border-radius:8px;padding:10px 11px;font:inherit;font-size:13px;color:var(--ink);background:#fff}.field input:focus,.field select:focus{outline:2px solid #d5e6d9;border-color:#83ad8e}.hint{font-size:10px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:23px}.installment-preview{grid-column:1/-1;padding:10px 12px;border-radius:8px;background:var(--pale);color:var(--green);font-size:11px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:11px 17px;border-radius:9px;font-size:12px;opacity:0;transition:.2s;pointer-events:none}.toast.show{opacity:1}footer{color:#929b94;font-size:10px;text-align:center;padding:12px 0 0}#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:white;padding:11px 17px;border-radius:9px;font-size:12px;opacity:0;transition:.2s;pointer-events:none;z-index:10}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:950px){.shell{grid-template-columns:205px 1fr}.sidebar{padding-inline:12px}main{padding:30px 25px}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.shell{display:block;padding-bottom:62px}.sidebar{position:fixed;z-index:5;top:auto;bottom:0;width:100%;height:62px;padding:5px 8px;background:#fff;border:0;border-top:1px solid var(--line)}.brand,.side-bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;gap:0;height:100%}.sidebar nav button{display:grid;justify-items:center;align-content:center;gap:1px;padding:3px 2px;min-width:52px;font-size:18px}.sidebar nav button span{font-size:8px;white-space:nowrap}.sidebar nav button.active{background:transparent}.sidebar nav button.active span{color:var(--green)}main{padding:19px 16px 16px}header{align-items:flex-start;gap:8px;margin-bottom:20px}.mobile-brand{display:block;color:var(--green);font-weight:750;font-size:15px;margin:8px 0 0}.eyebrow{font-size:8px}h1{font-size:22px}.header-actions{gap:5px}.btn{padding:9px 10px;font-size:11px}.header-actions #quickExpense{display:none}.cards{gap:9px}.card{padding:14px}.card-value{font-size:21px;margin:9px 0 2px}.card-label{font-size:10px}.card-note{font-size:9px}.content-grid{grid-template-columns:1fr;gap:0}.panel{padding:16px}.chart-wrap{height:170px}.list-panel{padding:15px}.data-row{grid-template-columns:minmax(90px,1.5fr) .8fr auto;gap:7px;padding:12px 0}.data-row>*:nth-child(3),.data-row>*:nth-child(4),.data-row.head>*:nth-child(3),.data-row.head>*:nth-child(4){display:none}.data-row.head{grid-template-columns:minmax(90px,1.5fr) .8fr auto}.toolbar{align-items:flex-start}.search{min-width:0;width:130px}.calendar{gap:3px}.cal-day{min-height:62px;padding:5px 3px}.cal-item{font-size:8px;padding:2px}.field-grid{grid-template-columns:1fr 1fr}footer{padding-bottom:9px}}
.auth-gate{position:fixed;inset:0;z-index:20;background:#f6f7f3f2;backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.auth-gate[hidden]{display:none}.auth-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 20px 70px #23362b20;text-align:center}.auth-mark{margin:0 auto 15px}.auth-card h2{font-size:25px;letter-spacing:-.5px;margin:5px 0}.auth-card p{font-size:13px;color:var(--muted);margin:0 0 20px}.auth-card form{text-align:left;padding:0}.auth-card .field{display:grid;gap:6px;margin:13px 0;font-size:11px;font-weight:600}.auth-card input{padding:11px;border:1px solid var(--line);border-radius:8px;font:inherit}.auth-submit{width:100%;margin-top:10px}.auth-link{display:block;margin:12px auto 0;border:0;background:none;color:var(--green);font-size:12px;cursor:pointer}.auth-message{font-size:12px;color:var(--green);margin-top:14px;line-height:1.5}.auth-message.error{color:var(--red)}
.auth-close{float:right}.auth-card{position:relative}.auth-close[hidden]{display:none}
@media(max-width:680px){#accountBtn{font-size:0;padding:9px 11px}#accountBtn::after{content:"◎";font-size:14px}}
