:root{--paper: #f4efe6;--paper-2: #ebe4d6;--ink: #2a2a28;--ink-mute: #6b675e;--line: #ddd4c4;--amber: #c47b1a;--amber-soft: #f3e2c4;--green: #2f6b4f;--btn: #2a2a28;--btn-ink: #f4efe6;--danger: #8a3b2b;--radius: 10px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--msg: ui-serif, Georgia, "Iowan Old Style", "Times New Roman", serif;--nav: calc(56px + env(safe-area-inset-bottom, 0px)) }*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font);min-height:100%}body{-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}#app{max-width:40rem;margin:0 auto;min-height:100dvh;position:relative;padding-bottom:var(--nav)}.screen{padding:1rem 1rem 2rem}.screen.pad-top{padding-top:.5rem}.top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:1.1rem 1rem .4rem}.top h1{font-size:1.35rem;font-weight:650;letter-spacing:-.02em;margin:0}.top .sub{color:var(--ink-mute);font-size:.85rem}.linkish,.text-btn{background:none;border:0;padding:0;color:var(--ink-mute);font-size:.9rem}.linkish:hover,.text-btn:hover{color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--btn);color:var(--btn-ink);border:0;border-radius:999px;padding:.55rem 1rem;font-weight:600;font-size:.92rem;min-height:2.5rem}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--ink)}.btn.full{width:100%}.btn.amber{background:var(--amber);color:#fff}.btn.small{min-height:2.1rem;padding:.35rem .85rem;font-size:.85rem}.list{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem;padding:.9rem 1rem;border-bottom:1px solid var(--line);background:transparent;width:100%;text-align:left}.row .meta{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.25rem .7rem;color:var(--ink-mute);font-size:.8rem}.row .overdue{font-weight:650;color:var(--amber);font-size:.82rem;letter-spacing:.01em}.row .overdue.promise{color:var(--ink)}.row .amt{font-size:1.12rem;font-weight:650;letter-spacing:-.02em;justify-self:end}.row .client{font-size:1rem;font-weight:550}.row .actions{grid-column:1 / -1;display:flex;justify-content:flex-end}.empty{padding:2.5rem 1.25rem;color:var(--ink-mute);line-height:1.45}.empty p{margin:0 0 1rem}.empty h2{color:var(--ink);font-size:1.1rem;font-weight:600;margin:0 0 .4rem}.form{display:flex;flex-direction:column;gap:.85rem;padding:.5rem 0 1rem}label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:var(--ink-mute);font-weight:550}label.inline{flex-direction:row;align-items:center;gap:.6rem;font-size:.95rem;color:var(--ink)}label.inline input{width:auto}input[type=text],input[type=email],input[type=number],input[type=date],input[type=tel],select,textarea{width:100%;background:#fffdf8;border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .75rem;min-height:2.7rem}textarea{min-height:10rem;resize:vertical;line-height:1.45}textarea.message{font-family:var(--msg);font-size:1.05rem;min-height:12rem}.help{font-size:.8rem;color:var(--ink-mute);margin:0}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.tabbar{position:fixed;left:0;right:0;bottom:0;max-width:40rem;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;background:var(--paper);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);z-index:20}.tabbar a{text-decoration:none;text-align:center;padding:.7rem .5rem .55rem;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-mute)}.tabbar a.active{color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:.3rem .7rem;font-size:.82rem}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.banner{background:var(--paper-2);padding:.75rem 1rem;font-size:.9rem;display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.paid{color:var(--green);font-weight:650}.badge{display:inline-block;font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .45rem;border-radius:999px;background:var(--paper-2);color:var(--ink-mute)}.badge.overdue{background:var(--amber-soft);color:var(--amber)}.badge.paid{background:#dce8e1;color:var(--green)}.badge.wait{background:var(--paper-2);color:var(--ink)}.thread{display:flex;flex-direction:column;gap:.75rem;padding:.5rem 0 1.25rem}.event{background:#fffdf8;border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .85rem}.event .when{font-size:.75rem;color:var(--ink-mute)}.event .kind{font-weight:650;font-size:.85rem;margin:.15rem 0 .25rem}.event pre{white-space:pre-wrap;font-family:var(--msg);font-size:.95rem;margin:.4rem 0 0;line-height:1.4}.event.paid .kind{color:var(--green)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a2a2859;z-index:30;display:flex;align-items:flex-end;justify-content:center}.sheet .panel{background:var(--paper);width:100%;max-width:40rem;border-radius:16px 16px 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));max-height:90dvh;overflow:auto}.sheet h2{margin:0 0 .75rem;font-size:1.05rem}.compose-head{padding:.75rem 1rem 0;display:flex;justify-content:space-between;align-items:center}.confirm{position:sticky;bottom:var(--nav);background:var(--paper-2);padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:.6rem;border-top:1px solid var(--line)}.confirm p{margin:0;font-weight:600}.confirm .row-btns{display:flex;gap:.5rem}.confirm .row-btns .btn{flex:1}details.waiting{margin:.5rem 0 2rem}details.waiting>summary{padding:.85rem 1rem;cursor:pointer;color:var(--ink-mute);font-size:.9rem;list-style:none}details.waiting>summary::-webkit-details-marker{display:none}.err{color:var(--danger);font-size:.85rem;margin:0}.header-actions{display:flex;gap:.5rem;align-items:center}.amt-line{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin:.25rem 0 .75rem}.amt-line .big{font-size:1.6rem;font-weight:650;letter-spacing:-.03em}.muted{color:var(--ink-mute)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
