:root{--paper: #f1e8cf;--paper-deep: #e9dec0;--card: #f7f0dd;--ink: #1e3a5f;--ink-soft: #4a5f7d;--cloth: #8c2332;--rule-red: #a4243b;--credit: #1f6f50;--debit: #a4243b;--line: #cdb98f;--stamp-shadow: 3px 3px 0}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.5}body:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");z-index:1}body:before{content:"";position:fixed;left:0;top:0;bottom:0;width:14px;background:var(--cloth);border-right:2px solid var(--rule-red);background-image:repeating-linear-gradient(to bottom,transparent 0 14px,rgb(241 232 207 / .55) 14px 22px);background-size:2px 100%;background-position:6px 0;background-repeat:no-repeat;z-index:2}.page{position:relative;z-index:3;max-width:560px;margin:0 auto;padding:16px 16px 110px 28px}.page.center{min-height:92vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px}h1,h2,h3,.brand,.btn,.tabs button,.eamt,.chip,.tag,.gname,.seg button,.whoami,.fab,.qrmeta,.mono{font-family:Courier New,ui-monospace,monospace}.brand{display:inline-block;background:var(--cloth);color:var(--paper);padding:10px 18px 8px;letter-spacing:3px;text-transform:uppercase;font-weight:700;border:2px solid var(--ink);box-shadow:var(--stamp-shadow) var(--ink);margin:8px 0}.page.center .brand{font-size:1.6rem}.tagline{color:var(--ink-soft);max-width:36ch;font-style:italic}.apphead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.apphead h1:not(.brand){font-size:1.15rem;margin:10px 0;padding:8px 16px;background:var(--card);border:2px solid var(--rule-red);outline:6px solid var(--cloth);outline-offset:3px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.apphead .brand{font-size:1.05rem}.whoami{color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;font-size:.85rem}h2{font-size:.95rem;margin:22px 0 8px;text-transform:uppercase;letter-spacing:2px;border-bottom:2px solid var(--rule-red);display:inline-block;padding-bottom:2px}h3{font-size:.9rem;margin:4px 0 10px;text-transform:uppercase;letter-spacing:1.5px}.muted{color:var(--ink-soft)}.fineprint{color:var(--ink-soft);font-size:.85rem;font-style:italic}.mono{font-size:.85rem}.tabs{display:flex;align-items:flex-end;gap:4px;overflow-x:auto;overflow-y:hidden;border-bottom:2px solid var(--ink);margin:14px 0 16px;padding:6px 2px 0;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{font-size:.8rem;border:2px solid var(--ink);border-bottom:none;background:var(--paper-deep);padding:6px 12px 4px;color:var(--ink-soft);cursor:pointer;text-transform:uppercase;letter-spacing:1px;white-space:nowrap;border-radius:6px 6px 0 0}.tabs button.on{background:var(--card);color:var(--cloth);font-weight:700;padding:8px 12px 6px}.card{background:var(--card);border:2px solid var(--ink);box-shadow:var(--stamp-shadow) #1e3a5f40;padding:14px;margin:12px 0;display:flex;flex-direction:column;gap:10px;text-align:left}.cards{display:flex;flex-direction:column;gap:14px}.card.group{cursor:pointer;width:100%;font:inherit;color:inherit;position:relative;border-left:10px solid var(--cloth)}.gname{font-weight:700;font-size:1.02rem;text-transform:uppercase;letter-spacing:1px}.gsub{color:var(--ink-soft);font-size:.85rem}.chip,.tag{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;border:2px solid currentColor;padding:2px 8px;color:var(--ink-soft);transform:rotate(-2.5deg);border-radius:3px;box-shadow:inset 0 0 6px #1e3a5f26;align-self:flex-start}.chip.ok{color:var(--credit)}.chip.due{color:var(--debit)}.tag{margin-left:8px;transform:rotate(2deg);font-size:.62rem;padding:1px 6px;vertical-align:middle}.entry.voided .tag{color:var(--debit);transform:rotate(-6deg) scale(1.05)}label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px;font-family:Courier New,ui-monospace,monospace}input,select,textarea{font-family:Courier New,ui-monospace,monospace;font-size:1rem;color:var(--ink);background:var(--paper);border:none;border-bottom:2px solid var(--ink);padding:8px 4px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px dashed var(--rule-red);outline-offset:3px}textarea{border:2px solid var(--ink)}.btn{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;border:2px solid var(--ink);background:var(--card);color:var(--ink);padding:10px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--stamp-shadow) var(--ink);transition:transform 80ms ease,box-shadow 80ms ease}.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}.btn.primary{background:var(--cloth);border-color:var(--cloth);color:var(--paper);box-shadow:var(--stamp-shadow) var(--ink)}.btn.danger{background:var(--card);color:var(--debit);border-color:var(--debit);box-shadow:var(--stamp-shadow) var(--debit)}.btn.link{border:none;background:none;box-shadow:none;color:var(--cloth);padding:6px 4px;text-decoration:underline;text-underline-offset:3px}.btn.link:active{transform:none}.btn.small{padding:6px 10px;font-size:.72rem}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:default}.btn:disabled:active{transform:none;box-shadow:var(--stamp-shadow) var(--ink)}.row{display:flex;align-items:center;gap:8px}.row.gap{gap:12px}.row.wrap{flex-wrap:wrap}.seg{display:flex;border:2px solid var(--ink)}.seg button{font-size:.8rem;border:none;background:var(--card);padding:8px 12px;cursor:pointer;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px}.seg button.on{background:var(--ink);color:var(--paper);font-weight:700}.list{display:flex;flex-direction:column;margin:12px 0;background:var(--card);border:2px solid var(--ink);position:relative}.list:before{content:"";position:absolute;top:0;bottom:0;left:12px;border-left:1px solid var(--rule-red);border-right:1px solid var(--rule-red);width:2px;pointer-events:none}.entry{font:inherit;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--line);padding:12px 14px 12px 26px;display:grid;grid-template-columns:1fr auto;gap:2px 10px;cursor:pointer;color:var(--ink)}.entry:last-child{border-bottom:none}.entry.flat{cursor:default}.entry:disabled{cursor:default;opacity:1}.entry.voided .edesc,.entry.voided .eamt{text-decoration:line-through;color:var(--ink-soft)}.edesc{font-weight:700}.esub{grid-column:1;color:var(--ink-soft);font-size:.82rem;font-style:italic}.eamt{grid-column:2;grid-row:1;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.eamt.ok{color:var(--credit)}.eamt.due{color:var(--debit)}.participants{display:flex;flex-direction:column;gap:6px}.participant{display:flex;align-items:center;justify-content:space-between;gap:8px}.check{flex-direction:row;align-items:center;color:var(--ink);gap:8px;text-transform:none;letter-spacing:0;font-size:.95rem}.exact{width:110px}.hint{font-size:.85rem;color:var(--debit);font-family:Courier New,ui-monospace,monospace}.hint.ok{color:var(--credit)}.notice{background:var(--paper-deep);border:2px dashed var(--ink-soft);padding:10px 12px;margin:12px 0;font-size:.9rem}.notice.ok{border:2px solid var(--credit);color:var(--credit);background:#e8efdf;font-family:Courier New,ui-monospace,monospace;font-weight:700}.error{color:var(--paper);background:var(--debit);border:2px solid var(--ink);padding:10px 12px;margin:10px 0;font-size:.9rem}.fab{position:fixed;right:max(16px,calc(50vw - 264px));bottom:24px;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;background:var(--cloth);color:var(--paper);border:2px solid var(--ink);border-radius:999px;padding:16px 20px;box-shadow:4px 4px 0 var(--ink);cursor:pointer;z-index:10}.fab:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}.modal-backdrop{position:fixed;inset:0;background:#1e3a5f80;display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal{background:var(--card);border:2px solid var(--ink);border-bottom:none;padding:18px 16px 24px;width:min(560px,100vw);max-height:88vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.qrshow{display:flex;flex-direction:column;align-items:center;gap:6px}.qrshow img{width:min(78vw,320px);image-rendering:pixelated;border:2px solid var(--ink);padding:8px;background:#fff}.qrmeta{color:var(--ink-soft);font-size:.78rem;text-align:center;text-transform:uppercase;letter-spacing:1px}.qrvideo{width:100%;border:2px solid var(--ink);background:#000;aspect-ratio:3 / 4;object-fit:cover}section{margin-bottom:8px}.list.mono{background:#faf7ec;border:none;box-shadow:0 2px 8px #1e3a5f33;padding:14px 0;mask:radial-gradient(circle at 8px 0,transparent 5px,#000 5.5px) top / 16px 10px repeat-x,radial-gradient(circle at 8px 10px,transparent 5px,#000 5.5px) bottom / 16px 10px repeat-x,linear-gradient(#000,#000) center / 100% calc(100% - 18px) no-repeat}.list.mono:before{display:none}.list.mono .entry{border-bottom:1px dashed var(--line);padding-left:14px}.list.mono .edesc{text-transform:uppercase;font-size:.8rem;letter-spacing:1px}.list.mono .esub{font-family:Courier New,ui-monospace,monospace;font-style:normal;font-size:.72rem}@media(max-width:599px){body:before{width:8px}.page{padding-left:22px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
