:root{--ink: #14201e;--muted: #6b7a77;--line: #dfe4e2;--page: #f6f7f6;--surface: #fff;--accent: #0a5c50;--new: #e8f5ef;--edit: #fdf3e3;--danger: #ba1a1a;--mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--page)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 12px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}button.danger{background:var(--danger);color:#fff;border-color:var(--danger);font-weight:600}button.ghost{background:none;border-color:transparent;color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}input,select{font:inherit;padding:5px 7px;border:1px solid var(--line);border-radius:5px}.boot,.login{max-width:520px;margin:80px auto;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.login input{display:block;width:100%;margin:8px 0}.boot.err{color:var(--danger)}.top{display:flex;align-items:center;gap:20px;padding:10px 18px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.brand{font-weight:700;letter-spacing:-.01em}.top nav{display:flex;gap:6px}.top nav button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.who{margin-left:auto;color:var(--muted);display:flex;align-items:center;gap:10px}.bar{display:flex;align-items:center;gap:18px;padding:12px 18px}.bar h2{margin:0;font-size:16px}.bar-right{margin-left:auto;display:flex;align-items:center;gap:12px}.save{color:var(--muted);font-size:12px}.save.on{color:var(--accent);font-weight:600}.pill{font-size:12px;padding:3px 9px;border-radius:999px;background:#eef1f0;color:var(--muted)}.pill.ok{background:var(--new);color:var(--accent);font-weight:600}.batchdate{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.batchdate .hint{max-width:380px;line-height:1.3}.table-wrap{margin:0 18px 8px;overflow:auto;max-height:calc(100vh - 170px);border:1px solid var(--line);border-radius:8px;background:var(--surface)}.tbl{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.tbl th{position:sticky;top:0;z-index:2;background:#f0f3f2;text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.tbl th.num{text-align:right}.tbl th.sorted{color:var(--accent)}.caret{font-size:9px}.tbl td{padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td.num{text-align:right;font-family:var(--mono)}.tbl tbody tr:hover td{background:#f7faf9}.rownum{width:44px;text-align:right;color:var(--muted);font-size:11px;background:#fafbfa;position:sticky;left:0}.tbl-empty{padding:20px;color:var(--muted)}.owes{color:var(--danger);font-weight:600}.dim{color:var(--muted)}.search{width:240px}.totals{display:flex;gap:18px;font-size:12.5px;color:var(--muted)}.totals b{color:var(--ink);font-family:var(--mono)}.footnote{margin:0 18px 30px;font-size:12px;color:var(--muted)}.bar{flex-wrap:wrap;row-gap:8px}.bar select{max-width:170px}.chk{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);white-space:nowrap}.chk input{margin:0}.subbar{display:flex;align-items:center;gap:16px;padding:0 18px 10px;flex-wrap:wrap}.clearfilters{background:none;border:0;color:var(--accent);font-weight:600;font-size:12.5px;padding:2px}.sorthint{margin-left:auto;font-size:11.5px;color:var(--muted)}.caret{font-size:9px;opacity:.22}.caret.on{opacity:1;color:var(--accent)}.tbl td.ed{padding:2px 4px}.tbl td.ed input,.tbl td.ed select{width:100%;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:4px}.tbl td.ed input:hover,.tbl td.ed select:hover{border-color:var(--line)}.tbl td.ed input:focus,.tbl td.ed select:focus{border-color:var(--accent);background:#fff;outline:none}.tbl td.dirty{background:var(--edit)}.tbl td.dirty input{font-weight:600}.tbl tr.isnew td{background:var(--new)}.tag{font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;padding:1px 6px;border-radius:999px;margin-right:7px}.tag.new{background:var(--new);color:var(--accent)}.tag.edit{background:var(--edit);color:#8a5a08}.modeswitch{display:flex;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}.modeswitch button{border:0;border-radius:0;padding:5px 12px}.modeswitch button.on{background:var(--accent);color:#fff}.draftpill{background:var(--edit);color:#8a5a08;font-weight:600}
