:root{--navy:#1f3a5f;--navy-deep:#142a47;--navy-soft:#cdd2da;--navy-mist:#dde0e6;--cream:#eceef1;--ink:#1d2430;--ink-soft:#5a6474;--ink-faint:#93a0b2;--line:#e4e4e4;--card:#fff;--good:#2f7a4b;--good-bg:#e2f1e7;--amber:#a86f14;--amber-bg:#fcf1dc;--red:#a8402f;--red-bg:#fbe9e5;--grey-bg:#ececec;--accent:var(--navy);--accent-ink:#fff;--field:#fff;--hover:#f2f3f6;--bar:var(--navy);--tab-on:#fff;--tab-on-ink:var(--navy);--btn-line:#d4d4d4;--r:16px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--cream:#0e171d;--card:#16232c;--ink:#e6eef3;--ink-soft:#93a6b3;--ink-faint:#6f8492;--line:#253744;--navy-mist:#1f303b;--navy-soft:#2a3e4b;--grey-bg:#1f303b;--good:#46c47e;--good-bg:#15301f;--amber:#f0a24b;--amber-bg:#33240f;--red:#ff8a80;--red-bg:#3a1a18;--accent:#4fb3e8;--accent-ink:#062233;--field:#1f303b;--hover:#1c2b35;--bar:#16232c;--tab-on:#4fb3e8;--tab-on-ink:#062233;--btn-line:#2f4351;color-scheme:dark}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}.app{min-height:100%;display:flex;flex-direction:column}.page{flex:1;padding:0 16px 40px;max-width:1100px;width:100%;margin:0 auto}.center{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center}.muted{color:var(--ink-soft)}.tiny{font-size:12.5px;color:var(--ink-faint)}.topbar{padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;position:sticky;top:0;background:var(--bar);z-index:20}.brand{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px;max-width:1100px;margin:0 auto}.brand .t{font-size:17px;font-weight:800;color:#fff}.brand .sync{font-size:12px;color:#ffffffa6}.tabs{display:flex;background:#ffffff1a;border-radius:12px;padding:3px;max-width:1100px;margin:0 auto}.tabs a{flex:1;text-align:center;font-size:12.5px;font-weight:600;color:#ffffffd1;padding:8px 0;border-radius:9px;position:relative}.tabs a.on{background:var(--tab-on);color:var(--tab-on-ink);font-weight:700;box-shadow:0 1px 3px #00000014}.tabs .gear{flex:0 0 40px;font-size:16px}.badge{position:absolute;top:-5px;right:-2px;background:#a86f14;color:#fff;font-size:9.5px;font-weight:800;min-width:16px;height:16px;border-radius:8px;line-height:16px;padding:0 4px}.hdr{padding:16px 6px 10px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.hdr h1{font-size:28px;font-weight:800;letter-spacing:-.4px;line-height:1.1}.hdr .sub{color:var(--ink-soft);font-size:14px;margin-top:3px}.seg2{display:inline-flex;background:var(--navy-mist);border-radius:9px;padding:2px;font-size:12.5px;font-weight:700}.seg2 button{padding:6px 11px;border-radius:7px;color:var(--ink-soft)}.seg2 button.on{background:var(--accent);color:var(--accent-ink);box-shadow:0 1px 2px #0000001f}.seg{display:flex;background:var(--navy-mist);border-radius:11px;padding:3px}.seg button{flex:1;text-align:center;padding:8px 0;font-size:14px;font-weight:600;color:var(--ink-soft);border-radius:9px}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:700}.stack{display:flex;flex-direction:column;gap:10px}.card{background:var(--card);border-radius:14px;padding:12px 14px;box-shadow:0 1px 2px #1d24300d}.lbl{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--ink-faint);text-transform:uppercase;margin-bottom:6px;display:block}.row{display:flex;justify-content:space-between;align-items:center;font-size:14.5px;padding:9px 0;border-top:1px solid var(--line);gap:10px}.row:first-of-type{border-top:0}.row .l{min-width:0;flex:1}.row .l b{display:block;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .l span{font-size:12.5px;color:var(--ink-soft)}.row input[type=checkbox]{width:20px;height:20px;flex:none}.amt{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}.amt.in{color:var(--good)}.amt.out{color:var(--ink-soft)}.kv{display:flex;justify-content:space-between;align-items:center;font-size:15px;padding:8px 0;border-top:1px solid var(--line);gap:10px}.kv:first-of-type{border-top:0}.kv b{font-weight:700;font-variant-numeric:tabular-nums}.kv .m{color:var(--ink-soft)}.kv input{text-align:right;border:1.5px solid var(--line);border-radius:9px;padding:7px 10px;font-size:15px;font-weight:700;background:var(--field);outline:none}.empty{color:var(--ink-faint);text-align:center;padding:30px 10px;font-size:14px}.txn .txn-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.txn .l{min-width:0;flex:1}.txn .l b{display:block;font-weight:650}.txn .l span{font-size:12.5px;color:var(--ink-soft)}.txn-act{display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap}.txn.done{opacity:.6}.sel,.inp{border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px;background:var(--field);outline:none;font-weight:600;max-width:100%}.sel.grow,.inp{flex:1;min-width:0}textarea.inp{width:100%;font-weight:500;font-family:ui-monospace,Menlo,monospace;font-size:12px;resize:vertical}.btn{display:inline-block;text-align:center;border-radius:14px;padding:15px;font-size:16.5px;font-weight:700;width:100%}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--btn-line);box-shadow:0 1px 1px #142a470a}.btn.secondary:hover{background:var(--navy-mist)}.btn.secondary:active{background:var(--navy-soft)}.btn.danger{background:var(--red-bg);color:var(--red)}.btn.sm{padding:9px 14px;font-size:14px;border-radius:11px;width:auto}.btn:disabled{opacity:.5}.btnrow{display:flex;gap:8px;align-items:center}.linkish{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px;font-size:13.5px;white-space:nowrap}.error{background:var(--red-bg);color:var(--red);border-radius:12px;padding:10px 13px;font-size:14px;font-weight:600;margin-top:8px}.notice{background:var(--amber-bg);color:var(--amber);border-radius:12px;padding:10px 13px;font-size:14px;font-weight:600}.statusline{display:flex;align-items:center;gap:10px;background:var(--good-bg);border-radius:12px;padding:10px 13px;font-size:14px;color:var(--good);font-weight:600;margin-bottom:6px}.statusline.warn{background:var(--amber-bg);color:var(--amber)}.field{background:var(--card);border-radius:13px;padding:11px 14px;box-shadow:0 1px 2px #1d24300d}.field input{width:100%;border:0;outline:none;font-size:17px;font-weight:600;background:transparent;padding:2px 0}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 24px;gap:18px;text-align:center}.login h1{font-size:30px;font-weight:800;color:var(--accent)}.login .btn{max-width:360px}.login .field{width:100%;max-width:360px;text-align:left}.savebanner{position:fixed;left:16px;right:16px;top:calc(env(safe-area-inset-top) + 10px);z-index:60;box-shadow:0 4px 18px #0000002e;max-width:1100px;margin:0 auto 6px;width:calc(100% - 32px);display:flex;gap:10px;align-items:center;background:var(--red-bg);color:var(--red);border-radius:12px;padding:10px 12px;font-size:14px;font-weight:600}.savebanner span{flex:1}.savebanner button{font-weight:700;padding:4px 8px;border-radius:8px}.savebanner button:first-of-type{background:var(--red);color:var(--card)}@media(max-width:480px){.tabs a{font-size:11.5px}.tabs .gear{flex:0 0 32px}.hdr{flex-direction:column;align-items:flex-start}}.kv.tap{cursor:pointer}.kv.tap:hover{background:var(--hover);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}.detail{background:transparent;border-left:3px solid var(--accent);padding:0 0 0 12px;margin:2px 0 8px 2px}.detail .row{font-size:13px;padding:6px 0}
