:root{--green:#123f36;--mint:#d9eee3;--paper:#f6f5ef;--ink:#173c34;--muted:#6c7971;--line:#e3e6dd;--red:#aa3c35;--amber:#95610c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;border:0;color:inherit}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #ddac42;outline-offset:3px}[hidden]{display:none!important}#shell{max-width:1000px;margin:auto;padding:20px 22px 180px}header{display:flex;align-items:center;justify-content:space-between;margin:8px 0 23px}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:800;margin:0 0 7px;color:var(--muted)}h1{font-size:30px;letter-spacing:-1.1px;margin:0}.dot{color:#b28e33}h2{font-size:21px;letter-spacing:-.5px;margin:0}h3{font-size:16px;margin:0}.circle{height:40px;width:40px;border-radius:50%;background:#eaece3;font-size:24px;display:grid;place-items:center;flex-shrink:0}.month-bar{display:flex;align-items:center;gap:14px;justify-content:center;margin-bottom:22px}.month-bar .circle{background:transparent;font-size:30px}.month-label{position:relative;font-size:19px;font-weight:700;text-align:center}.month-label input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;margin:0}input::-webkit-calendar-picker-indicator{cursor:pointer}.muted{color:var(--muted)}.hero{background:var(--green);color:white;border-radius:25px;padding:25px 25px 21px;position:relative;overflow:hidden}.hero:after{content:'';position:absolute;width:140px;height:140px;border:1px solid #ffffff15;border-radius:50%;right:-65px;top:0;pointer-events:none}.hero-label{font-size:14px;color:#d0e5db;margin-bottom:8px}.hero-number{font-size:42px;letter-spacing:-1.7px;font-weight:700;font-variant-numeric:tabular-nums}.hero .sub{font-size:12px;color:#c5dbd1;margin-top:10px;line-height:1.5}.hero .negative{color:#ffcabd}.status{display:inline-block;border-radius:30px;padding:6px 10px;font-size:11px;font-weight:650;background:#ffffff17;margin-top:17px;color:#e3f4eb}.status.warn{background:#744627;color:#ffead0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:13px 0 25px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:16px 13px;min-width:0}.card .label{font-size:11px;color:var(--muted);margin-bottom:7px;line-height:1.4}.card .amount{font-size:20px;font-weight:750;letter-spacing:-.6px;white-space:nowrap}.card .small{font-size:10px;margin-top:5px;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 13px;gap:12px}.text-button{padding:7px 0;background:transparent;font-size:12px;font-weight:700;color:var(--green)}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:20px}.comparison{margin-bottom:20px}.comparison:last-child{margin-bottom:0}.comparison .top{display:flex;justify-content:space-between;font-size:13px;gap:10px;margin-bottom:9px}.comparison small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.track{height:7px;background:#e8ede6;border-radius:12px;overflow:hidden}.fill{height:100%;background:#4e8a70;border-radius:12px}.fill.over{background:var(--red)}.fill.near{background:#cf9b3c}.category{padding:16px 0;border-bottom:1px solid var(--line)}.category:last-child{border-bottom:0;padding-bottom:0}.category:first-child{padding-top:0}.category-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.category-name{font-weight:650;font-size:14px}.category-rest{font-size:13px;font-weight:650}.category-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:8px 0}.negative,.error{color:var(--red)}.good{color:#36735b}.warning{color:var(--amber)}.notice{background:#fff0d0;padding:13px;border-radius:13px;font-size:13px;line-height:1.5;margin-bottom:15px}.viewer{font-size:12px;padding:10px;border-radius:12px;background:var(--mint);margin:0 0 16px;text-align:center}.expense-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);width:100%;text-align:left;background:transparent}.expense-row:last-child{border-bottom:0}.expense-icon{height:39px;width:39px;border-radius:13px;background:#edf3e8;display:grid;place-items:center;font-size:19px;flex-shrink:0}.expense-text{flex:1;min-width:0}.expense-text strong{display:block;font-size:13px}.expense-text p{margin:5px 0 0;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.expense-value{font-size:14px;font-weight:650;text-align:right;white-space:nowrap}.expense-value small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:6px}.empty{padding:25px 10px;text-align:center;color:var(--muted);line-height:1.6;font-size:13px}.floating{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:16px 26px;border-radius:40px;background:var(--green);color:white;box-shadow:0 8px 25px #123f3630;font-weight:650;font-size:15px;z-index:4;white-space:nowrap}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:1000px;display:flex;justify-content:space-around;border-top:1px solid var(--line);background:#fafbf6f5;backdrop-filter:blur(15px);padding:10px 15px calc(12px + env(safe-area-inset-bottom));z-index:5}nav button{background:transparent;font-size:10px;color:var(--muted);min-width:65px;padding:3px 10px}nav button span{display:block;font-size:22px;margin-bottom:4px}nav button.selected{color:var(--green);font-weight:800}.primary{background:var(--green);color:white;border-radius:14px;padding:15px 20px;font-weight:650;min-height:48px;width:100%}.secondary{background:#e8ece3;padding:14px 20px;border-radius:14px;min-height:48px;width:100%;font-weight:650}.danger{background:#f9e9e5;color:var(--red);padding:14px;border-radius:14px;width:100%;margin-top:12px}label{display:block;font-size:12px;font-weight:650}input,select{display:block;width:100%;min-height:48px;padding:13px 12px;border:1px solid #d5dccf;border-radius:12px;background:white;color:var(--ink);font-size:16px;margin-top:7px}form label{margin:0 0 17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.helper{font-size:12px;line-height:1.6;color:var(--muted);margin:6px 0 18px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.filters input,.filters select{margin:0;font-size:14px}.budget-input-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}.budget-input-row label{flex:1}.budget-input-row input{width:110px;margin:0;text-align:right}.budget-input-row button{font-size:20px;background:transparent}.total-line{display:flex;justify-content:space-between;padding:18px 0;font-weight:750}.account-box{margin-bottom:16px}.account-box p{font-size:13px;line-height:1.7}.account-box a{display:block;text-decoration:none;text-align:center;color:var(--ink)}dialog{border:0;border-radius:26px;padding:23px;width:calc(100% - 28px);max-width:500px;color:var(--ink);background:var(--paper);max-height:87dvh;overflow-y:auto;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#0e292470;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:12px}.login{max-width:390px;margin:10vh auto;padding:30px 28px}.login h1{font-size:39px;line-height:1.12;margin:19px 0}.login form{margin-top:32px}.brand-mark{background:var(--green);color:white;border-radius:21px;width:64px;height:64px;display:grid;place-items:center;font-size:33px;margin-bottom:35px}.footnote{font-size:11px;text-align:center;color:var(--muted);margin-top:24px}.error{font-size:13px;line-height:1.6}.error:empty{display:none}#toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:15;background:var(--green);color:white;border-radius:12px;padding:14px 20px;max-width:90%;font-size:13px;box-shadow:0 5px 20px #0003}.history-note{font-size:11px;color:var(--muted);line-height:1.6;margin:13px 0}.summary-pill{font-size:12px;border-radius:12px;background:var(--mint);padding:12px 15px;line-height:1.6;margin-bottom:14px}.segment{display:flex;gap:6px;background:#e7ece1;padding:5px;border-radius:12px;margin-bottom:18px}.segment button{flex:1;background:transparent;padding:9px;border-radius:9px;font-size:13px}.segment button.active{background:white;box-shadow:0 2px 4px #0001;font-weight:700}.income-reminder{display:block;background:#fdf3db;color:var(--amber);width:100%;padding:13px;text-align:left;border-radius:13px;margin-bottom:15px;font-size:13px}.tiny{font-size:11px;color:var(--muted);line-height:1.6}.all-dates{background:#f2efe4;padding:9px;border-radius:8px;font-size:11px;margin-top:12px}@media(min-width:700px){#shell{padding:30px 40px 170px}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.cards{margin-bottom:0}.hero-number{font-size:49px}.card .amount{font-size:24px}.hero{padding:30px}.login{margin-top:8vh}nav{border-radius:20px 20px 0 0}.floating{bottom:90px}header h1{font-size:34px}}@media(max-width:430px){.card{padding:14px 10px}.card .amount{font-size:18px}#shell{padding-left:18px;padding-right:18px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,opacity .15s}.fill{transition:width .4s}}
.expense-row:disabled{opacity:1;cursor:default}
