:root { --bg:#fbfaf7; --fg:#1d1c1a; --muted:#6b6862; --line:#e4e1da; --focus:#1f5fbf; --sel:#eef3fc;
        --chip:#fff; --shared:#1d6b45; --personal:#7a4a12; --internal:#55525c; --alert:#a3261f; }
@media (prefers-color-scheme: dark) { :root { --bg:#17171a; --fg:#ecebe8; --muted:#a19e98; --line:#2e2e33;
        --focus:#7fa8f0; --sel:#1f2735; --chip:#222228; --shared:#6fcf9b; --personal:#e2ae6b; --internal:#b5b2bd;
        --alert:#f08a80; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:15px/1.45 system-ui, sans-serif; }
header { display:flex; flex-wrap:wrap; gap:8px 24px; align-items:center; padding:12px 24px; border-bottom:1px solid var(--line); }
nav { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; }
nav form { margin:0; }
main { padding:16px 24px; max-width:1100px; }
h1 { font-size:20px; } h2 { font-size:16px; margin-top:28px; }
a, button { color:var(--focus); }
button { font:inherit; padding:4px 12px; border:1px solid var(--focus); border-radius:6px; background:var(--chip); cursor:pointer; }
:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
label { display:block; margin:8px 0; }
input, select { font:inherit; padding:4px 8px; border:1px solid var(--line); border-radius:6px; background:var(--chip); color:var(--fg); }
fieldset { border:1px solid var(--line); border-radius:8px; margin:12px 0; }
[role=alert] { color:var(--alert); font-weight:600; }
.hint, .keys { color:var(--muted); font-size:13px; }
.keys { display:flex; gap:18px; flex-wrap:wrap; }
.code { font:22px ui-monospace, monospace; letter-spacing:.05em; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:600; }
.amount { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
tr[aria-selected=true] { background:var(--sel); outline:2px solid var(--focus); outline-offset:-2px; }
tr.done { color:var(--muted); }
.tag { display:inline-block; padding:1px 8px; border-radius:10px; border:1px solid currentColor; font-size:12px; }
.shared { color:var(--shared); } .personal { color:var(--personal); } .internal { color:var(--internal); }
.sugg { font-style:italic; }
.chips { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 0; }
.choice { padding:2px 10px; border:1px solid var(--line); border-radius:12px; background:var(--chip); color:var(--fg); font-size:13px; }
.choice.hit { outline:2px solid var(--focus); }
.choice[aria-pressed=true] { background:var(--focus); border-color:var(--focus); color:var(--bg); }
.choice.shared, .choice.personal, .choice.internal { border-color:currentColor; }
.choice.shared { color:var(--shared); } .choice.personal { color:var(--personal); } .choice.internal { color:var(--internal); }
.choice.shared[aria-pressed=true] { background:var(--shared); color:var(--bg); }
.choice.personal[aria-pressed=true] { background:var(--personal); color:var(--bg); }
button.save { margin-top:10px; }
button:disabled { opacity:.45; cursor:default; }
#review tbody tr:not([aria-selected=true]) { cursor:pointer; }
.history { list-style:none; padding:0; }
.history li { padding:4px 0; border-bottom:1px solid var(--line); }
form.inline, details.inline { display:inline; margin-left:8px; }
details.inline[open] { display:block; margin:4px 0 8px 16px; }
.categories { padding-left:18px; } .categories li { padding:2px 0; }
button.danger { border-color:var(--alert); color:var(--alert); }
.choice.transfer { border-color:currentColor; color:var(--internal); }
.tag.transfer { color:var(--internal); }
