:root{--ink: #141210;--graphite: #6B6459;--paper: #FBFAF8;--register: #EFECE6;--rule: #D8D3C9;--owed: #0B4D31;--owe: #BE3A24;--danger: var(--owe);--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--mono: ui-monospace, SFMono-Regular, "Roboto Mono", Menlo, monospace;font-size:17px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}.app{max-width:720px;margin:0 auto;padding:1rem 1rem 4rem}.app-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.app-header h1{font-size:1.35rem;margin:0;flex:1}.mark{flex:none;color:var(--ink);display:block}.button{font:inherit;padding:.6rem .9rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--register);color:var(--ink);cursor:pointer;min-height:44px}.button--primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.button--danger{background:var(--danger);color:var(--paper);border-color:var(--danger)}.button--small{padding:.35rem .6rem;min-height:36px;font-size:.85rem}.button--wide{width:100%;margin-top:1rem}.button--back{padding:.4rem .7rem;display:inline-flex;align-items:center;gap:.4rem}.button--icon{display:inline-flex;align-items:center;justify-content:center;padding:.5rem;min-width:44px}.icon{flex:none}.card{background:var(--register);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem;margin:1rem 0;display:grid;gap:.75rem}.card--warning{border-color:var(--danger)}label{display:grid;gap:.3rem;font-size:.85rem;color:var(--graphite)}input{font:inherit;color:var(--ink);padding:.6rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);min-height:44px}.row{display:flex;gap:.5rem}.muted{color:var(--graphite)}.empty{color:var(--graphite);text-align:center;padding:2rem 1rem}.error{color:var(--danger);margin:0;font-size:.9rem}.balance{display:inline-flex;flex-direction:column;align-items:flex-end}.balance__amount{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.balance__label{font-size:.75rem;color:var(--graphite)}.balance--owes-you .balance__amount{color:var(--owed)}.balance--you-owe .balance__amount{color:var(--owe)}.balance--settled .balance__amount{color:var(--graphite)}.balance--large .balance__amount{font-size:2rem}.balance--large .balance__label{font-size:.9rem}.party-list__items{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.party-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;font:inherit;text-align:left;padding:.9rem;background:var(--register);border:1px solid var(--rule);border-radius:var(--radius);cursor:pointer}.party-row__name{font-weight:600}.party-ledger__balance{text-align:center;padding:1rem 0 1.5rem}.ledger-table{width:100%;border-collapse:collapse}.ledger-table th{text-align:right;font-size:.75rem;color:var(--graphite);text-transform:uppercase;letter-spacing:.04em;padding-bottom:.5rem}.ledger-table th:first-child{text-align:left}.col-gave,.col-got{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;width:7.25rem}.entry td{border-top:1px solid var(--rule);padding:.7rem .25rem;vertical-align:top}.entry__date{font-size:.9rem}.entry__date-inner{display:grid;gap:.15rem}.entry__note{color:var(--graphite);font-size:.85rem}.entry__audit{color:var(--graphite);font-size:.7rem}.entry__edited,.entry__voided-marker{font-size:.7rem;color:var(--graphite);text-transform:uppercase;letter-spacing:.04em}.entry--voided td{color:var(--graphite)}.entry--voided .col-gave,.entry--voided .col-got{text-decoration:line-through}.col-actions{width:9.5rem}.entry__actions-inner{display:flex;gap:.3rem;justify-content:flex-end}.direction-choice{display:flex;gap:.5rem;border:0;padding:0;margin:0}.direction-choice legend{font-size:.85rem;color:var(--graphite);padding:0 0 .4rem}.direction-button{flex:1;font:inherit;display:grid;gap:.2rem;padding:.8rem;border:2px solid var(--rule);border-radius:var(--radius);background:var(--register);cursor:pointer}.direction-button small{color:var(--graphite);font-size:.72rem}.direction-button--gave.is-selected,.direction-button--got.is-selected{border-color:var(--ink);color:var(--ink)}.banner{border:1px solid var(--rule);border-left-width:4px;border-radius:var(--radius);background:var(--register);padding:.85rem 1rem;margin-bottom:1rem;display:grid;gap:.6rem}.banner p{margin:0;font-size:.9rem}.banner--info{border-left-color:var(--graphite)}.banner--warning{border-left-color:var(--ink)}.banner--urgent{border-left-color:var(--danger)}.settings h2{font-size:1rem;margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}label.button{display:inline-flex;align-items:center;cursor:pointer}.restore-preview__parties{margin:.25rem 0;padding-left:1.2rem;font-size:.9rem}.slip-preview{font-family:var(--mono, ui-monospace, monospace);font-size:.8rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;background:var(--paper);border:1px solid var(--line, var(--rule));border-radius:var(--radius);padding:.75rem;margin:0;max-height:20rem;overflow-y:auto}.stamp{display:inline-flex;align-items:center;gap:.45rem;font:inherit;font-size:.78rem;padding:.3rem .5rem;border:0;background:none;cursor:pointer;color:var(--graphite)}.stamp--off{color:var(--graphite)}.stamp--on{color:var(--owed)}.stamp__label{letter-spacing:.01em}.first-run{display:grid;gap:.5rem;padding-top:1rem}.first-run .empty{padding:0 0 .25rem}.first-entry .direction-choice{margin-top:.25rem}
