:root{--bg:#f5f1ea;--card:#fffdf9;--ink:#1c1a17;--muted:#6e665a;--line:#e4ddd0;--soft:#ebe5da;--accent:#1f4d3a;--accent-soft:#e3ede6;--accent-ink:#fff;--res:repeating-linear-gradient(135deg, #9fb8aa 0 4px, #c6d6cc 4px 8px);--warn:#a4491a;--warn-soft:#fbeadf;--bad:#b3261e;--take:#8a5a1c;--take-soft:#f6e8d6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#161513;--card:#211f1c;--ink:#efe9de;--muted:#a59c8e;--line:#36322c;--soft:#2b2824;--accent:#9fcbb2;--accent-soft:#22322a;--accent-ink:#10201a;--res:repeating-linear-gradient(135deg, #3e5a4b 0 4px, #2c4237 4px 8px);--warn:#eea477;--warn-soft:#3a261a;--bad:#ff8a80;--take:#e6b77a;--take-soft:#3a2d1d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#161513;--card:#211f1c;--ink:#efe9de;--muted:#a59c8e;--line:#36322c;--soft:#2b2824;--accent:#9fcbb2;--accent-soft:#22322a;--accent-ink:#10201a;--res:repeating-linear-gradient(135deg, #3e5a4b 0 4px, #2c4237 4px 8px);--warn:#eea477;--warn-soft:#3a261a;--bad:#ff8a80;--take:#e6b77a;--take-soft:#3a2d1d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;font:17px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:560px;padding:16px 20px calc(170px + env(safe-area-inset-bottom));margin:0 auto}main.center{flex-direction:column;justify-content:center;min-height:100dvh;padding-bottom:24px;display:flex}h1{margin:8px 0 16px;font:700 30px/1.2 Georgia,Times New Roman,serif}p{margin:0}.muted{color:var(--muted)}.center{text-align:center}.small{font-size:14px}.error{color:var(--bad);margin-top:8px}.empty{color:var(--muted);text-align:center;padding:24px 0}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}input,select,button{font:inherit;color:inherit}input,select{border:1.5px solid var(--line);background:var(--card);border-radius:12px;width:100%;min-width:0;min-height:48px;padding:10px 14px}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button{border:1.5px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;min-height:44px;padding:8px 14px}button:disabled{opacity:.5;cursor:default}button.big{border-radius:16px;width:100%;min-height:56px;font-size:18px;font-weight:600}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}button.danger{background:var(--bad);color:#fff;border-color:var(--bad)}button.link{color:var(--muted);background:0 0;border:0;margin:16px auto 0;text-decoration:underline;display:block}.row{gap:8px;display:flex}.row>*{flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:10px;margin-bottom:12px;padding:16px;display:flex}.card h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px}.setup{flex-direction:column;gap:14px;display:flex}.setup label{flex-direction:column;gap:6px;font-weight:600;display:flex}.setup label small{color:var(--muted);font-size:14px;font-weight:400}.setup .title{margin:0;font:700 24px/1.2 Georgia,serif}.suffix{color:var(--muted);align-items:center;gap:8px;font-weight:400;display:flex}.suffix input{color:var(--ink);font-size:22px;font-weight:600}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:8px;padding:0;font-weight:600}.summary{background:var(--accent-soft);border-radius:12px;padding:12px 14px}.date{color:var(--muted);font-size:15px}.hero{letter-spacing:-.03em;margin:6px 0 4px;font:700 64px/1 Georgia,serif}.bar{background:var(--soft);border-radius:6px;height:12px;margin:14px 0 8px;position:relative;overflow:hidden}.bar .fill{background:var(--accent);border-radius:6px;position:absolute;inset:0 auto 0 0}.bar .res{background:var(--res);position:absolute;inset:0 auto 0 0}.legend{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:14px;display:flex}.legend b{color:var(--ink)}.lock{align-items:center;gap:4px;display:inline-flex}.status{background:var(--accent-soft);color:var(--accent);border-radius:12px;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;font-size:15px;font-weight:600;display:flex}.status.over{background:var(--warn-soft);color:var(--warn)}.payday{border:1.5px dashed var(--accent);background:var(--card);border-radius:14px;justify-content:space-between;align-items:center;width:100%;margin-top:12px;padding:12px 14px;display:flex}.payday span{align-items:center;gap:8px;display:inline-flex}.payday b{color:var(--accent)}.day{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 2px;font-size:13px;font-weight:700}.tx{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;border-radius:0;align-items:center;gap:12px;width:100%;padding:10px 0;display:flex}.tx .ic{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.tx .ic.takeout{background:var(--take-soft);color:var(--take)}.tx .ic.emergency_expense{background:var(--warn-soft);color:var(--warn)}.tx .t{flex:1;min-width:0}.tx .t b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.tx .t small{color:var(--muted);font-size:14px}.tx .a{white-space:nowrap;font-weight:700}.tx.void{opacity:.55;cursor:default}.tx.void .a{text-decoration:line-through}.fab{width:min(520px,100% - 40px);left:50%;bottom:calc(84px + env(safe-area-inset-bottom));background:var(--accent);min-height:56px;color:var(--accent-ink);z-index:5;border:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #1f4d3a59}.sheet-wrap{z-index:20;position:fixed;inset:0}.dim{background:#14120f73;position:absolute;inset:0}.sheet{background:var(--card);max-width:560px;max-height:92dvh;padding:10px 20px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;flex-direction:column;gap:12px;margin:0 auto;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.grab{background:var(--line);border-radius:3px;flex-shrink:0;width:40px;height:5px;margin:0 auto 4px}.amount{text-align:center;font:700 52px/1.1 Georgia,serif}.amount small{color:var(--muted);font-size:26px}.hint{text-align:center;color:var(--muted);min-height:20px;margin-top:-8px;font-size:14px}.cats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.cats.two{grid-template-columns:1fr 1fr}.cats legend{grid-column:1/-1}.cats button{border-radius:14px;flex-direction:column;align-items:center;gap:4px;min-height:64px;padding:10px 4px;font-size:15px;display:flex}.cats button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.chips{flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;display:flex}.chip{border-radius:999px;padding:8px 16px}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip.end{margin-left:auto}.keys{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.keys button{background:var(--soft);border:0;border-radius:12px;min-height:52px;font-size:24px;font-weight:600}.keys button:active{background:var(--line)}.alert{background:var(--warn-soft);border-radius:16px;margin-bottom:16px;padding:12px 14px}.alert h2{color:var(--warn);align-items:center;gap:6px;margin:0 0 4px;font-size:14px;display:flex}.arow,.irow{justify-content:space-between;align-items:center;gap:10px;display:flex}.arow{padding:6px 0}.arow b,.irow b{font-weight:600;display:block}.arow small{color:var(--warn);font-size:14px;display:block}.arow small.bad{color:var(--bad);font-weight:700}.arow button{font-size:15px;font-weight:600}.seg{background:var(--soft);border-radius:14px;margin-bottom:6px;padding:4px;display:flex}.seg button{background:0 0;border:0;border-radius:10px;flex:1;padding:8px 2px;font-size:15px}.seg button.on{background:var(--card);font-weight:700;box-shadow:0 1px 3px #0000001f}.irow{border-bottom:1px solid var(--line);padding:10px 0}.irow small{color:var(--muted);font-size:14px;display:block}.irow .name{text-align:left;background:0 0;border:0;border-radius:0;flex:1;min-height:44px;padding:4px 0}.step{border:1.5px solid var(--line);border-radius:12px;flex-shrink:0;align-items:center;display:flex;overflow:hidden}.step button{background:0 0;border:0;border-radius:0;width:44px;padding:0;font-size:22px}.step button.text{border-left:1.5px solid var(--line);width:auto;padding:0 12px;font-size:15px;font-weight:600}.step span{text-align:center;min-width:64px;padding:0 8px;font-size:15px;font-weight:600}.checks{grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:8px;display:grid}.checks button{text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:6px 0;display:flex}.box{border:2px solid var(--line);border-radius:7px;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.box.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.box .icon{stroke-width:3px}.rrow{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:56px;padding:12px 0;display:flex}.card .rrow:last-child{border-bottom:0}.rrow b{font-weight:600;display:block}.rrow small{color:var(--muted);font-size:14px;display:block}.rrow small em{color:var(--accent);font-style:normal;font-weight:600}.rrow .icon{color:var(--muted);flex-shrink:0}.nrow{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:6px 0;display:grid}.nrow small{color:var(--muted);text-align:right;font-size:14px}.nrow small.bad{color:var(--bad);font-weight:600}.summary button.link{color:var(--accent);min-height:44px;margin:0 0 0 8px;font-weight:600;display:inline}.crow{border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex}.crow>button{background:0 0;border:0;border-radius:0;min-height:56px}.crow>button:first-child{padding:0 10px 0 0}.crow .name{text-align:left;flex:1;padding:8px 0}.crow .name b{font-weight:600;display:block}.share{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;border-radius:0;gap:12px;width:100%;margin-top:14px;padding:8px 0}.share b{font-weight:600;display:block}.share small{color:var(--muted);font-weight:400;display:block}.crow .name small{color:var(--muted);font-size:14px;display:block}.crow .name.done b{color:var(--muted);text-decoration:line-through}.crow .price{font-variant-numeric:tabular-nums;font-weight:600}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--line);padding:10px 0}.list li:first-child{border-top:0}.code{overflow-wrap:anywhere;background:var(--bg);border-radius:8px;padding:10px;font-size:14px;display:block}.tabs{background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{min-height:64px;color:var(--muted);background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.tabs button.on{color:var(--accent);font-weight:700}.offline{left:50%;top:calc(8px + env(safe-area-inset-top));background:var(--ink);color:var(--bg);white-space:nowrap;z-index:30;border-radius:999px;padding:6px 12px;font-size:13px;position:fixed;transform:translate(-50%)}.demo{background:var(--accent-soft);color:var(--accent);text-align:center;padding:6px 16px;font-size:13px}.setup label.file{background:var(--accent);width:100%;min-height:56px;color:var(--accent-ink);cursor:pointer;border-radius:16px;flex-direction:row;justify-content:center;align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.file input{opacity:0;width:1px;height:1px;position:absolute}p.bad{color:var(--bad);font-weight:600}.rcpt{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) 112px;align-items:center;gap:8px;padding:8px 0;display:grid}.rcpt>button{background:0 0;border:0;min-width:44px;min-height:44px;padding:0}.rcpt small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.rcpt select{width:100%;min-height:44px}.rcpt .suffix{gap:4px}.rcpt .suffix input{width:100%;min-width:0;padding-left:8px;padding-right:4px;font-size:17px}
