:root{--text:#56525e;--text-h:#14121a;--bg:#fff;--surface:#f7f6f9;--border:#e3e1e8;--accent:#0e5b4a;--accent-text:#fff;--out:#b3261e;--in:#1a7f37;--muted:#8a8595;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Mono", Consolas, monospace;font:16px/1.45 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#a9a4b4;--text-h:#f2f0f6;--bg:#131217;--surface:#1c1b22;--border:#2f2d38;--accent:#3bbe9c;--accent-text:#06251e;--out:#ff6b61;--in:#58d67f;--muted:#78737f}}*{box-sizing:border-box}body{margin:0}#root{max-width:640px;min-height:100svh;margin:0 auto}h1,h2{color:var(--text-h);margin:0 0 12px;font-weight:600}h2{font-size:18px}p{margin:0}input,select,button{font:inherit;color:inherit}input,select{border:1px solid var(--border);background:var(--bg);border-radius:8px;width:100%;padding:10px 12px;font-size:16px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{flex-direction:column;min-height:100svh;display:flex}.tabs{border-bottom:1px solid var(--border);background:var(--bg);z-index:2;display:flex;position:sticky;top:0}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:14px 8px}.tabs button.active{color:var(--text-h);border-bottom-color:var(--accent);font-weight:600}.tabs .lock,.tabs .sync{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:14px 12px;font-size:13px}.tabs .sync:disabled{opacity:.6}.qr-holder{background:#fff;border-radius:12px;justify-content:center;margin-bottom:16px;padding:16px;display:flex}.qr{max-width:100%;height:auto;display:block}.scanner video{background:#000;border-radius:12px;width:100%;margin-bottom:10px}.scanner button{width:100%}.devices{border:1px solid var(--border);border-radius:12px;margin-top:24px;padding:16px}.devices button{width:100%}.gate button.link{width:100%;color:var(--accent);border:none;margin-top:20px;font-size:14px}main{flex:1;padding:16px 16px 96px}.gate{max-width:380px;margin:0 auto;padding:48px 20px}.gate h1{margin-bottom:8px;font-size:26px}.gate .hint{margin-bottom:16px}.gate .warning{border:1px solid var(--border);border-left:3px solid var(--out);background:var(--surface);border-radius:8px;margin-bottom:20px;padding:12px 14px;font-size:14px}.gate .warning strong{color:var(--text-h)}.gate button.primary{width:100%;margin-top:4px}.gate button.danger{width:100%;color:var(--muted);border:none;margin-top:28px;font-size:14px}.gate button.danger:hover{color:var(--out)}.summary{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.summary .label{color:var(--muted);font-size:13px;display:block}.summary .total{font:600 32px/1.1 var(--sans);font-variant-numeric:tabular-nums;color:var(--text-h);margin:2px 0 8px;display:block}.summary .label strong{color:var(--text-h);font-variant-numeric:tabular-nums}.summary .year{flex:none;width:auto}.transactions,.accounts{margin:0;padding:0;list-style:none}.transactions li,.accounts li{border-bottom:1px solid var(--border);align-items:center;display:flex}.row{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;grid-template-columns:56px 1fr auto;align-items:baseline;gap:4px 10px;padding:12px 4px;display:grid}.row:disabled{cursor:default}.row.static{cursor:default;align-items:center;gap:10px;display:flex}.row .date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.row .description{color:var(--text-h);overflow-wrap:anywhere}.row.static .description{flex:1}.row .description em{color:var(--muted)}.row .amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.row .amount.out{color:var(--out)}.row .amount.in{color:var(--in)}.row .account{color:var(--muted);grid-column:2/4;font-size:13px}.tag{background:var(--surface);border:1px solid var(--border);color:var(--muted);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px}.opening .description{color:var(--muted);font-style:italic}.delete{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-size:22px;line-height:1}.delete:hover{color:var(--out)}.empty{color:var(--muted);text-align:center;padding:48px 16px}button.primary,button.ghost{cursor:pointer;border-radius:8px;padding:11px 18px}button.primary{background:var(--accent);color:var(--accent-text);border:1px solid var(--accent);font-weight:600}button.ghost{border:1px solid var(--border);background:0 0}button.small{padding:7px 12px;font-size:14px}button:disabled{opacity:.5;cursor:default}.fab{background:var(--accent);color:var(--accent-text);cursor:pointer;z-index:3;border:none;border-radius:999px;padding:13px 28px;font-weight:600;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000040}label{color:var(--muted);margin-bottom:12px;font-size:13px;display:block}label input,label select{margin-top:4px}.row-fields,.row.editing{align-items:center;gap:8px;width:100%;padding:10px 0;display:flex}.sheet .row{cursor:default;gap:12px;padding:0;display:flex}.sheet .row label{flex:1}.hint{color:var(--muted);margin-bottom:12px;font-size:13px}.error{color:var(--out);margin-bottom:12px;font-size:14px}.add-account{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:28px;padding:16px}.segmented{border:1px solid var(--border);border-radius:8px;margin-bottom:16px;display:flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;flex:1;padding:10px 4px}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--accent);color:var(--accent-text);font-weight:600}.sheet-backdrop{z-index:10;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:640px;max-height:92svh;padding:20px 16px calc(20px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border);border-radius:16px 16px 0 0;overflow-y:auto}.sheet-actions{gap:10px;margin-top:8px;display:flex}.sheet-actions button{flex:1}@media (width>=560px){.sheet-backdrop{align-items:center}.sheet{border:1px solid var(--border);border-radius:16px}}
