@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(./fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(./fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(./fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:500;src:url(./nunito-latin-500-normal-EugFkASW.woff2)format("woff2"),url(./nunito-latin-500-normal-B5klmw3Q.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(./nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}:root{--bg:#fff8f0;--surface:#fff;--sunken:#fdf1e4;--line:#efe0cf;--line-strong:#e2cdb6;--ink:#3d2b24;--ink-2:#6e574a;--ink-3:#7d6555;--accent:#e8492f;--accent-ink:#b83e1a;--warn:#b3261e;--sunset-1:#ff7059;--sunset-2:#ffb347;--good:#2e9e6b;--good-bg:#e4f2ea;--note:#b7791f;--note-strong:#94600f;--good-strong:#1f7a52;--note-bg:#fdf0dc;--note-line:#f0ce92;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:26px;--s7:34px;--r-sm:9px;--r-md:13px;--r-lg:18px;--r-xl:20px;--r-pill:999px;--sh-1:0 2px 10px -4px #3d2b2424;--sh-2:0 5px 16px -5px #e8492f8c;--sh-3:0 -6px 28px -8px #3d2b2438;--scrim:#3d2b248c;--brand:Fredoka, ui-rounded, system-ui, sans-serif;--text:Nunito, system-ui, sans-serif;--tap:44px}:root[data-theme=dark]{--bg:#241a17;--surface:#2f221d;--sunken:#3a2a23;--line:#4a362d;--line-strong:#5c4437;--ink:#fbeee2;--ink-2:#c4a895;--ink-3:#a89383;--accent:#ff8f73;--accent-ink:var(--accent);--warn:#ff9b8d;--good:#4fcb92;--good-bg:#1e3b2c;--note:#f0c070;--note-bg:#3d2c16;--note-line:#6b4e1e;--note-strong:var(--note);--good-strong:var(--good);--sh-1:0 2px 10px -4px #00000080;--scrim:#000000a8}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:600 14.5px/1.45 var(--text);-webkit-text-size-adjust:100%;margin:0}#root{max-width:480px;padding:var(--s4) var(--s4) calc(var(--footer-h,24px) + var(--s6) + env(safe-area-inset-bottom));min-height:100vh;margin:0 auto}h1,h2,h3{font-family:var(--brand);letter-spacing:-.012em;margin:0 0 var(--s2);font-weight:600}h1,.screen-title{font-size:19px}h3{font-size:15.5px}.label{font:500 12.5px/1.4 var(--text);color:var(--ink-2)}.muted{font:500 12.5px/1.4 var(--text);color:var(--ink-3)}.micro{font:800 11px/1.3 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.money,.money-1,.money-2,.hero{font-family:var(--brand);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;text-align:right;letter-spacing:-.012em;white-space:nowrap;font-weight:600}.hero{text-align:center;font-size:44px;line-height:1.05;display:block}.money-1{font-size:25px}.money-2{font-size:15px}.hero .sym{color:var(--ink-3);margin-right:.06em;font-size:.6em}.card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--sh-1);padding:var(--s4);margin-bottom:var(--s3)}.tap-card{border:1px solid var(--line-strong);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;display:block}.receipt-row{width:calc(100% + var(--s4) * 2);margin:0 calc(-1 * var(--s4));padding:var(--s3) var(--s4) var(--s3) calc(var(--s4) - 4px);min-height:var(--tap);border:0;border-bottom:1px solid var(--line);font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border-left:4px solid #0000;display:block}.receipt-row:last-child{border-bottom:none;padding-bottom:0}.receipt-row-todo{border-left-color:var(--note-line)}.card-todo{border-left:4px solid var(--note-line)}.card-inactive{background:var(--sunken);box-shadow:none;border-style:dashed}.row{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar{align-items:center;gap:var(--s2);margin-bottom:var(--s4);display:flex}.topbar-sticky{z-index:5;margin:0 calc(-1 * var(--s4)) var(--s4);padding:var(--s2) var(--s4);padding-top:calc(var(--s2) + env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.app-mark{flex:none;display:block}.topbar .screen-title{flex:1;min-width:0;margin:0}.footerbar{width:100%;max-width:480px;padding:var(--s3) var(--s4) calc(var(--s3) + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--bg) 35%);position:fixed;bottom:0;left:50%;transform:translate(-50%)}.sheet-backdrop{z-index:20;background:var(--scrim);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);width:100%;max-width:480px;max-height:88vh;box-shadow:var(--sh-2);padding:var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));overflow-y:auto}.sheet:focus{outline:none}.sheet-grip{width:36px;height:4px;margin:0 auto var(--s3);background:var(--line-strong);border-radius:2px}@media (prefers-reduced-motion:no-preference){.sheet{animation:.22s ease-out sheet-up}.sheet-backdrop{animation:.22s ease-out fade-in}}@keyframes sheet-up{0%{transform:translateY(12%)}to{transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.scans-left{width:100%;padding:var(--s2) 0;font:inherit;color:var(--ink-3);cursor:pointer;background:0 0;border:0;margin-bottom:4px;display:block}.scans-left-low{color:var(--accent-ink);font-weight:600}.fab-slot{width:100%;max-width:480px;padding:0 var(--s4) calc(var(--s4) + max(env(safe-area-inset-bottom), var(--s6)));pointer-events:none;justify-content:flex-end;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.fab{pointer-events:auto;border-radius:var(--r-pill);background:linear-gradient(100deg, var(--sunset-1), var(--sunset-2));color:#4a1f10;width:56px;height:56px;box-shadow:var(--sh-2);cursor:pointer;border:0;place-items:center;display:grid}.fab:active{transform:scale(.94)}@media (prefers-reduced-motion:no-preference){.fab{transition:transform .12s}}.tabbar{background:var(--bg);border-top:1px solid var(--line);width:100%;max-width:480px;padding:0 var(--s2) env(safe-area-inset-bottom);grid-template-columns:1fr 1fr 1fr;align-items:stretch;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{min-height:56px;font:600 11px/1.2 var(--text);color:var(--ink-3);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.tab-icon{font-size:20px;line-height:1}.tab.selected{color:var(--accent-ink);font-weight:700}.tab-scan{padding:0}.tab-scan-disc{border-radius:var(--r-pill);background:linear-gradient(100deg, var(--sunset-1), var(--sunset-2));color:#4a1f10;width:44px;height:44px;box-shadow:var(--sh-2);place-items:center;display:grid}.item-row{padding:var(--s3) 0;border-bottom:1px solid var(--line)}.item-row:last-child{border-bottom:none}.item-inactive input{color:var(--ink-3);text-decoration:line-through}.money-field{font-family:var(--brand);font-variant-numeric:tabular-nums;text-align:right;flex:none;width:100px}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:var(--tap);border:1px solid var(--line-strong);border-radius:var(--r-md);padding:0 var(--s5);font:600 15px/1 var(--brand);letter-spacing:-.01em;cursor:pointer;background:var(--sunken);color:var(--ink);display:inline-flex}.btn-primary{background:linear-gradient(100deg, var(--sunset-1), var(--sunset-2));color:#4a1f10;width:100%;box-shadow:var(--sh-2);border:0}.btn-ghost{color:var(--accent-ink);padding:0 var(--s2);min-height:var(--tap);background:0 0;border-color:#0000}.btn:disabled{opacity:.45;cursor:default;box-shadow:none}.btn-square{width:var(--tap);flex:none;padding:0;font-size:18px}.chip{align-items:center;gap:var(--s2);min-height:var(--tap);padding:0 var(--s3);margin:var(--s1) var(--s2) var(--s1) 0;border:1px solid var(--line-strong);border-radius:var(--r-pill);font:500 14px/1 var(--text);color:var(--ink);background:var(--sunken);cursor:pointer;overflow-wrap:anywhere;text-align:left;max-width:100%;display:inline-flex}.tap-block{all:unset;cursor:pointer;width:100%;min-height:var(--tap);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block}.chip-scroll{overscroll-behavior:contain;max-height:26vh;overflow-y:auto}.card-picked{border:2px solid var(--accent);box-shadow:var(--sh-2);position:relative}.card-tick{border-radius:var(--r-pill);background:var(--accent-ink);width:24px;height:24px;color:var(--surface);font:700 14px/24px var(--text);text-align:center;position:absolute;top:-9px;right:-6px}.chip-inline{all:unset;cursor:pointer;min-height:var(--tap);align-self:stretch;align-items:center;display:inline-flex}.chip-inline-end{padding-right:var(--s3);margin-right:calc(-1 * var(--s3));padding-left:var(--s2);font-size:16px}.chip-person{border-radius:var(--r-pill)}.chip-group{border-radius:var(--r-md)}.chip-action{color:var(--ink-2);background:0 0;border-style:dashed}.chip.selected{border-width:1.5px;border-color:var(--ink);font-weight:600}.chip.selected:after{content:"✓";color:currentColor;font-weight:700}.chip-person{background:var(--person);color:#3d2b24;border-color:#0000}.chip-person.selected{background:var(--person-ink);border:2px solid var(--person-ink);color:#fff}:root[data-theme=dark] .chip-person{background:color-mix(in srgb, var(--person) 20%, var(--surface));border-color:color-mix(in srgb, var(--person) 35%, var(--surface));color:var(--ink)}:root[data-theme=dark] .chip-person.selected{background:var(--person);color:#3d2b24;border:2px solid #fff}:root[data-theme=dark] .chip-person.selected .disc-inverted{background:var(--person-ink);color:#fff}.chip-group.selected{background:var(--ink);border-color:var(--ink);color:var(--surface)}.disc{border-radius:var(--r-pill);width:26px;height:26px;font:700 12.5px/1 var(--text);background:var(--person-ink);color:#fff;flex:none;justify-content:center;align-items:center;display:inline-flex}.disc-inverted{color:var(--person-ink);background:#fff}.disc-sm{width:22px;height:22px;font-size:11px}.disc-stack{display:inline-flex}.disc-stack .disc{border:1.5px solid var(--surface);margin-left:-8px}.disc-stack .disc:first-child{margin-left:0}.note{gap:var(--s3);background:var(--note-bg);border:1px solid var(--note-line);border-radius:var(--r-md);padding:var(--s3);margin-bottom:var(--s3);color:var(--ink);font:500 13px/1.5 var(--text);display:flex}.note-dot{border-radius:var(--r-pill);background:var(--note-strong);width:20px;height:20px;color:var(--surface);font:700 13px/20px var(--text);text-align:center;flex:none}.note-head{color:var(--ink);font-weight:800;display:block}.note-good{background:var(--good-bg);border-color:color-mix(in srgb, var(--good) 35%, transparent)}.note-good .note-dot{background:var(--good-strong);color:var(--surface)}.banner-warn,.banner-good{border-radius:var(--r-md);padding:var(--s3);font:500 13px/1.5 var(--text);margin-bottom:var(--s3);border:1px solid #0000}.banner-warn{background:var(--note-bg);border-color:var(--note-line);color:var(--ink)}.banner-good{background:var(--good-bg);border-color:var(--good);color:var(--ink)}.track{border-radius:var(--r-pill);background:var(--line);height:5px;overflow:hidden}.track>span{border-radius:var(--r-pill);background:linear-gradient(90deg, var(--sunset-1), var(--sunset-2));height:100%;display:block}.track.none>span{background:var(--note-line)}.track.done>span{background:var(--good)}.pack{width:100%;margin-bottom:var(--s2);padding:var(--s3);min-height:var(--tap);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);font:inherit;color:inherit;text-align:left;cursor:pointer;display:block}.pack-selected{border:2px solid var(--accent);background:var(--sunken);padding:calc(var(--s3) - 1px)}.pack-tag{margin-left:var(--s2);padding:2px var(--s2);border-radius:var(--r-pill);background:var(--good-bg);color:var(--ink);font:700 10.5px/1.5 var(--text);letter-spacing:.02em;vertical-align:2px;display:inline-block}input,select{min-height:var(--tap);font:600 16px/1 var(--text);padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink)}input:focus-visible,select:focus-visible,.btn:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.select-compact{field-sizing:content;text-overflow:ellipsis;width:auto;max-width:62%}.trip-name{font:600 17px/1.25 var(--brand);letter-spacing:-.012em;min-width:0}.chip-emoji{border-radius:var(--r-md);justify-content:center;width:52px;padding:0;font-size:20px}.chip-emoji.selected:after{content:none}.chip-emoji.selected{background:var(--ink);border-color:var(--ink)}.scanning{width:180px;padding:var(--s4) var(--s4) var(--s5);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm) var(--r-sm) 0 0;box-shadow:var(--sh-1);flex-direction:column;gap:9px;display:flex;position:relative;overflow:hidden;-webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat,repeating-linear-gradient(135deg,#000 0 5px,#0000 5px 10px) bottom/100% 8px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat,repeating-linear-gradient(135deg,#000 0 5px,#0000 5px 10px) bottom/100% 8px repeat-x}.scanning-line{background:var(--line);border-radius:999px;height:7px}.scanning-line.short{background:var(--line-strong);align-self:flex-end}.scanning-sweep{background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--sunset-2) 55%, transparent), color-mix(in srgb, var(--sunset-1) 40%, transparent), transparent);height:54px;animation:1.9s ease-in-out infinite scan-sweep;position:absolute;top:-54px;left:0;right:0}@keyframes scan-sweep{0%{top:-54px}to{top:100%}}@media (prefers-reduced-motion:reduce){.scanning-sweep{opacity:.75;animation:none;top:18%}}.scan-btn{border-radius:var(--r-lg);justify-content:space-between;align-items:center;gap:var(--s2);height:56px;padding:0 10px 0 var(--s4);width:100%;display:flex}.scan-btn-bare{padding:0 var(--s4);justify-content:center}.scan-btn-label{font-family:var(--brand);white-space:nowrap;font-size:16px;font-weight:700}.scan-chip{border-radius:var(--r-sm);white-space:nowrap;height:30px;font-family:var(--text);background:#3d2b2426;align-items:center;padding:0 10px;font-size:12.5px;font-weight:800;display:flex}.scan-chip-last{color:#ffe6d2;background:#3d2b24}.scan-square{border-radius:var(--r-lg);width:56px;height:56px;font-size:20px}.viewfinder{width:172px;height:242px;position:relative}.viewfinder-paper{background:var(--surface);border:1px solid var(--line);clip-path:polygon(0 0,100% 0,100% 96.5%,91% 100%,82% 96.5%,73% 100%,64% 96.5%,55% 100%,46% 96.5%,37% 100%,28% 96.5%,19% 100%,10% 96.5%,0 100%);box-sizing:border-box;flex-direction:column;gap:10px;padding:20px 16px 22px;display:flex;position:absolute;inset:0;box-shadow:0 10px 26px #b83e1a1a}.viewfinder-paper-empty{background:var(--sunken);border:1.5px dashed var(--line-strong);box-shadow:none;text-align:center;justify-content:center;align-items:center}.viewfinder-line{background:var(--line);border-radius:3px;height:6px}.viewfinder-line-head{background:var(--line-strong);height:10px}.viewfinder-bracket{border:0 solid var(--accent);width:28px;height:28px;position:absolute}.viewfinder-tl{border-top-width:3px;border-left-width:3px;border-radius:9px 0 0;top:-13px;left:-13px}.viewfinder-tr{border-top-width:3px;border-right-width:3px;border-radius:0 9px 0 0;top:-13px;right:-13px}.viewfinder-bl{border-bottom-width:3px;border-left-width:3px;border-radius:0 0 0 9px;bottom:-13px;left:-13px}.viewfinder-br{border-bottom-width:3px;border-right-width:3px;border-radius:0 0 9px;bottom:-13px;right:-13px}.scan-stage{padding:var(--s6) var(--s5) var(--s7);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:22px;display:flex}.tab-badge{box-sizing:border-box;border-radius:var(--r-pill);background:var(--ink);min-width:17px;height:17px;color:var(--bg);font-family:var(--text);justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:800;display:flex;position:absolute;top:4px;left:39px}.scans-tile{background:var(--sunken);border-radius:14px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.btn-pill{height:var(--tap);width:auto;padding:0 var(--s4);border-radius:var(--r-pill);background:var(--sunken);border:1px solid var(--line);color:var(--accent-ink);font-family:var(--brand);white-space:nowrap;align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:inline-flex}
