:root{--page: #c9b291;--page-dark: #b89e79;--paper: #f6eddc;--paper-line: #e4d6bd;--ink: #211b14;--ink-soft: #5f5340;--muted: #97866a;--accent: #e2541c;--accent-ink: #fff4ea;--pos: #2f7350;--neg: #bb3b1f;--radius: 14px;--max: 460px;font-family:Hanken Grotesk,system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{background:var(--page);color:var(--ink);min-height:100%}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(120% 90% at 50% -10%,rgba(255,245,225,.5),transparent 55%),radial-gradient(140% 100% at 50% 120%,rgba(120,90,50,.22),transparent 60%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}.num{font-family:Space Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.app{position:relative;z-index:1;max-width:var(--max);margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--paper);background-image:linear-gradient(var(--paper-line) 1px,transparent 1px);background-size:100% 30px;box-shadow:0 12px 40px #3c280f47,0 2px 6px #3c280f2e}.paper-edge{position:sticky;top:0;height:12px;z-index:50;background:radial-gradient(circle at 9px 14px,var(--page) 7px,transparent 8px) 0 0 / 18px 12px repeat-x}.paper-edge.bottom{position:relative;top:auto;transform:scaleY(-1)}.screen{padding:18px 22px 120px;position:relative}.masthead{text-align:center;padding:26px 0 18px;border-bottom:2px dashed var(--paper-line)}.kicker{font-family:Space Mono,monospace;text-transform:uppercase;letter-spacing:.32em;font-size:.62rem;color:var(--accent);margin-bottom:10px}.logo{font-family:Fraunces,serif;font-weight:900;font-size:clamp(2.7rem,14vw,3.6rem);line-height:.9;letter-spacing:-.03em;font-variation-settings:"opsz" 144}.logo-split{font-style:italic;font-weight:500;color:var(--accent)}.tagline{margin-top:12px;color:var(--ink-soft);font-size:.95rem}.create-card{margin:22px 0}.field-label{display:block;font-family:Space Mono,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-bottom:8px}.create-row{display:flex;gap:8px}.text-input{width:100%;font:inherit;font-size:1rem;padding:13px 14px;background:#fffaf0;border:1.5px solid var(--ink);border-radius:var(--radius);color:var(--ink);box-shadow:2px 2px 0 var(--ink);transition:box-shadow .12s,transform .12s}.text-input:focus{outline:none;box-shadow:3px 3px 0 var(--accent);border-color:var(--accent)}.text-input::placeholder{color:#b6a585}.btn{font:inherit;font-weight:700;white-space:nowrap;padding:13px 18px;border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--paper);color:var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);transition:transform .08s,box-shadow .08s}.btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--ink)}.btn.ghost{background:transparent;box-shadow:none;border-style:dashed}.btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.link-btn{font:inherit;font-weight:600;font-size:.86rem;background:none;border:none;color:var(--accent);cursor:pointer;padding:4px;text-decoration:underline;text-underline-offset:3px}.link-btn.danger{color:var(--neg)}.group-list{display:flex;flex-direction:column;gap:0}.group-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:16px 4px;background:none;border:none;border-bottom:1.5px dashed var(--paper-line);cursor:pointer;font:inherit;color:var(--ink)}.group-row:active{background:#00000008}.group-name{display:block;font-family:Fraunces,serif;font-weight:600;font-size:1.22rem;letter-spacing:-.01em}.group-meta{font-size:.8rem;color:var(--muted)}.group-row-total{font-size:1.05rem;font-weight:700}.empty{text-align:center;padding:44px 24px;color:var(--ink-soft)}.empty-mark{font-size:2rem;color:var(--accent);margin-bottom:12px}.foot{text-align:center;margin-top:40px;font-family:Space Mono,monospace;font-size:.66rem;letter-spacing:.1em;color:var(--muted)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:4px 0 12px}.back{font:inherit;font-weight:600;background:none;border:none;color:var(--ink);cursor:pointer;padding:6px 0}.group-head{border-bottom:2px dashed var(--paper-line);padding-bottom:18px;margin-bottom:4px}.group-title{font-family:Fraunces,serif;font-weight:900;font-size:clamp(2rem,9vw,2.7rem);line-height:1;letter-spacing:-.02em;outline:none;border-radius:6px}.group-title:focus{background:#fffaf0;box-shadow:0 0 0 2px var(--accent)}.group-total{margin-top:12px;font-size:1.5rem;font-weight:700}.group-total-label{font-family:Hanken Grotesk,sans-serif;font-size:.8rem;font-weight:500;color:var(--muted);letter-spacing:0}.block{padding:20px 0;border-bottom:2px dashed var(--paper-line)}.block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.block-title{font-family:Space Mono,monospace;font-size:.74rem;text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft)}.people-chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;background:#fffaf0;border:1.5px solid var(--ink);border-radius:999px;font-size:.9rem;font-weight:600;box-shadow:1.5px 1.5px 0 var(--ink)}.chip-x{border:none;background:var(--neg);color:#fff;width:16px;height:16px;border-radius:50%;font-size:.8rem;line-height:1;cursor:pointer;display:grid;place-items:center}.add-person{display:flex;gap:8px;margin-top:14px}.settle{background:var(--ink);color:var(--paper);margin:0 -22px;padding:22px;border:none}.settle .block-title{color:var(--accent)}.settle-list{list-style:none;display:flex;flex-direction:column;gap:12px}.settle-row{display:flex;align-items:baseline;gap:8px;font-size:1.05rem;padding-bottom:12px;border-bottom:1px dashed #ffffff2a}.settle-row:last-child{border-bottom:none;padding-bottom:0}.payer{font-family:Fraunces,serif;font-weight:600}.arrow{font-size:.78rem;color:#d9c4a5;font-family:Space Mono,monospace}.payee{font-family:Fraunces,serif;font-weight:600;color:var(--accent)}.settle-amt{margin-left:auto;font-weight:700;font-size:1.1rem}.all-square{font-family:Fraunces,serif;font-size:1.2rem;color:#9bdcb6}.balances{margin-top:16px}.balances summary{cursor:pointer;font-family:Space Mono,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#d9c4a5;list-style-position:inside}.balance-list{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:9px}.balance-row{display:flex;justify-content:space-between;font-size:.95rem}.bal.pos{color:#9bdcb6}.bal.neg{color:#f0a58c}.bal.zero{color:#d9c4a5}.expense-list{list-style:none;display:flex;flex-direction:column}.expense-row{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1.5px dashed var(--paper-line)}.expense-main{flex:1;min-width:0}.expense-desc{display:block;font-family:Fraunces,serif;font-weight:600;font-size:1.1rem}.expense-sub{font-size:.78rem;color:var(--muted)}.expense-amt{font-weight:700;font-size:1.05rem}.expense-del{border:none;background:none;color:var(--muted);font-size:1.3rem;cursor:pointer;line-height:1;padding:0 2px}.expense-del:active{color:var(--neg)}.muted{color:var(--muted);font-size:.92rem}.fab{position:fixed;z-index:60;bottom:24px;left:50%;transform:translate(calc(var(--max) / 2 - 100%));width:60px;height:60px;border-radius:50%;background:var(--accent);color:var(--accent-ink);border:2px solid var(--ink);font-size:2rem;line-height:1;cursor:pointer;box-shadow:0 6px 0 var(--ink),0 10px 20px #3c280f59;transition:transform .1s,box-shadow .1s}.fab:active{transform:translate(calc(var(--max) / 2 - 100%)) translateY(4px);box-shadow:0 2px 0 var(--ink),0 6px 12px #3c280f59}@media(max-width:480px){.fab{right:22px;left:auto;transform:none}.fab:active{transform:translateY(4px)}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#211b1480;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease}.sheet{width:100%;max-width:var(--max);background:var(--paper);border:2px solid var(--ink);border-bottom:none;border-radius:22px 22px 0 0;padding:14px 22px calc(22px + env(safe-area-inset-bottom));max-height:92vh;overflow-y:auto;animation:rise .26s cubic-bezier(.22,1,.36,1)}@keyframes rise{0%{transform:translateY(100%)}}@keyframes fade{0%{opacity:0}}.sheet-grip{width:42px;height:5px;border-radius:3px;background:var(--paper-line);margin:2px auto 14px}.sheet-title{font-family:Fraunces,serif;font-weight:900;font-size:1.6rem;margin-bottom:16px}.amount-field{display:flex;align-items:center;justify-content:center;gap:4px;background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:16px;margin-bottom:14px}.amount-currency{font-family:Space Mono,monospace;font-size:1.6rem;color:var(--accent)}.amount-input{width:100%;max-width:220px;font-size:2.4rem;font-weight:700;text-align:center;background:none;border:none;color:var(--paper)}.amount-input:focus{outline:none}.amount-input::placeholder{color:#fff4}.amount-input::-webkit-outer-spin-button,.amount-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.amount-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.sheet-section{margin-top:18px}.payer-pills,.share-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.share-grid{display:grid;grid-template-columns:repeat(2,1fr)}.pill,.share{font:inherit;font-weight:600;cursor:pointer;padding:11px 14px;border:1.5px solid var(--ink);border-radius:var(--radius);background:#fffaf0;color:var(--ink);text-align:left}.pill.on{background:var(--accent);color:var(--accent-ink)}.share{display:flex;align-items:center;gap:8px}.share.on{background:var(--ink);color:var(--paper)}.share-check{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:5px;border:1.5px solid currentColor;font-size:.7rem;flex-shrink:0}.split-head{display:flex;justify-content:space-between;align-items:center}.per-head{margin-top:12px;text-align:center;font-size:.9rem;color:var(--ink-soft)}.sheet-actions{display:flex;gap:10px;margin-top:24px}.sheet-actions .btn{flex:1}
