:root{--base: #fcf8ea;--highlight: #a33d3b;--ink: #3a1f1a;--ink-muted: #7a5f52;--line: #ddd4bc;--success: #2f7d4a;--danger: #b3261e;--person-ana: #7a4b8c;--person-kim: #2f6f8f;--person-mai: #8f6a1c;--person-rose: #46703f;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 12px;--radius-md: 24px;--radius-lg: 32px;--radius-pill: 999px;--border-width: 1.5px;--border-width-strong: 2px;--size-map: 300px;--size-control: 56px;--size-icon-button: 44px;--size-chip: 34px;--size-avatar: 36px;--size-icon: 24px;--size-screen: 390px;--size-wheel: 320px;--size-tab-bar: 84px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-script: "Yellowtail", "Brush Script MT", cursive;--text-wordmark: 74px;--text-title-lg: 28px;--text-body: 15px;--text-label: 12px;--text-caption: 11px;--text-input: 16px;--text-greeting: 34px;--text-display: 60px;--text-amount: 40px;color-scheme:light}*{box-sizing:border-box}html,body{position:fixed;inset:0;width:100%;margin:0;overflow:hidden;overscroll-behavior:none}#root{height:100%}body{background:var(--base);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-body)}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}.ms{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;line-height:1;font-size:var(--size-icon);flex-shrink:0;font-variation-settings:"FILL" 0,"wght" 400,"opsz" 24}.ms.filled{font-variation-settings:"FILL" 1,"wght" 400,"opsz" 24}.label{display:block;margin-bottom:var(--space-2);color:var(--ink-muted);font-size:var(--text-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.title{margin:0;font-size:var(--text-title-lg);letter-spacing:-.01em}.wordmark{margin:0;color:var(--base);font-family:var(--font-script);font-size:var(--text-wordmark);font-weight:400;line-height:1;paint-order:stroke fill;text-shadow:.04em .055em 0 var(--highlight);transform:rotate(-6deg);-webkit-text-stroke:.08em var(--highlight)}.button{display:flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--size-control);border:0;border-radius:var(--radius-pill);background:var(--ink);color:var(--base);font-weight:700;cursor:pointer}.button:disabled{opacity:.6}input:not([type=checkbox]),select{width:100%;min-width:0;max-width:100%;height:var(--size-control);padding:0 var(--space-5);border:var(--border-width) solid var(--line);border-radius:var(--radius-pill);background:transparent;font-size:var(--text-input)}input[aria-invalid=true]{border-color:var(--danger)}.login{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);max-width:var(--size-screen);height:100%;margin:0 auto;padding:0 var(--space-5) calc(var(--space-6) + var(--space-2));overflow-y:auto}.login form{display:flex;margin-bottom:auto;flex-direction:column;gap:var(--space-4);width:100%}.alert{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--danger);border-radius:var(--radius-md);color:var(--danger)}.alert p{margin:var(--space-1) 0 0;color:var(--ink)}.hint{display:flex;align-items:center;gap:var(--space-2);margin:0;color:var(--ink-muted);font-size:var(--text-label)}.shell{display:flex;flex-direction:column;height:100%;max-width:var(--size-screen);margin:0 auto}.pager{display:flex;flex:1;min-height:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.pager::-webkit-scrollbar{display:none}.page{flex:0 0 100%;overscroll-behavior-y:contain;overflow-y:auto;padding:var(--space-5);scroll-snap-align:start;scroll-snap-stop:always}.tab-bar{display:flex;min-height:var(--size-tab-bar);padding:var(--space-3) var(--space-2) max(env(safe-area-inset-bottom),var(--space-3));border-top:var(--border-width) solid var(--line)}.tab{display:flex;flex:1;flex-direction:column;align-items:center;gap:var(--space-1);border:0;background:none;color:var(--ink-muted);font-size:var(--text-caption);font-weight:700;cursor:pointer}.tab[aria-current=page]{color:var(--ink)}.tab-pill{display:flex;align-items:center;justify-content:center;width:var(--size-control);height:calc(var(--space-6) + var(--space-1));border-radius:var(--radius-pill)}.tab[aria-current=page] .tab-pill{background:var(--highlight);color:var(--base)}@media(prefers-reduced-motion:reduce){.pager{scroll-behavior:auto}}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.greeting{margin:0;font-size:var(--text-greeting);letter-spacing:-.01em;line-height:1.15}.muted{margin:0;color:var(--ink-muted);font-size:var(--text-body)}.heading{display:flex;align-items:baseline;justify-content:space-between;margin:var(--space-2) 0 0;font-size:var(--text-title-md)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{height:var(--size-chip);padding:0 var(--space-3);border:var(--border-width) solid var(--line);border-radius:var(--radius-pill);background:none;font-size:var(--text-body);font-weight:700;cursor:pointer}.chip[aria-pressed=true]{border-color:var(--highlight);background:var(--highlight);color:var(--base)}.hero{position:relative;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--highlight);color:var(--base)}.hero .label{margin:0;color:inherit}.countdown{margin:var(--space-1) 0 0;font-size:var(--text-title-md);font-weight:500}.countdown span{font-size:var(--text-display);font-weight:700;letter-spacing:-.04em;line-height:1}.list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--line);border-radius:var(--radius-md);font-weight:500}.card.stack{align-items:stretch}.card.highlighted{border-color:var(--highlight)}.card .muted{font-size:var(--text-label)}.card:not(.stack)>.muted,.card>.chevron{margin-left:auto}a.card,button.card{width:100%;background:none;color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.chevron{color:var(--ink-muted)}.screen{overscroll-behavior-y:contain;display:flex;flex-direction:column;gap:var(--space-4);height:100%;max-width:var(--size-screen);margin:0 auto;padding:var(--space-5) 0;overflow-y:auto}.screen>:not(.pager):not(.modal){margin-inline:var(--space-5)}.page.flush{padding:var(--space-5) 0 0}.itinerary{position:relative;display:flex;flex-direction:column;gap:var(--space-4);height:100%}.itinerary>:not(.pager):not(.day-chips):not(.modal){margin-inline:var(--space-5)}.top-bar{display:flex;align-items:center;gap:var(--space-3)}.icon-button{display:flex;align-items:center;justify-content:center;width:var(--size-icon-button);height:var(--size-icon-button);border:var(--border-width) solid var(--line);border-radius:50%;background:transparent;color:inherit}.day-chips{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.itinerary>.day-chips{padding-inline:var(--space-5)}.day-chips::-webkit-scrollbar{display:none}.day-chip{display:flex;flex:0 0 calc((100% - var(--space-2) * 4) / 5);flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-3) 0;border:var(--border-width) solid var(--line);border-radius:var(--radius-md);background:none;color:var(--ink-muted);font-size:var(--text-caption);font-weight:700;text-transform:uppercase;cursor:pointer}.day-chip b{color:var(--ink);font-size:var(--text-title-md)}.day-chip[aria-pressed=true]{border-color:var(--highlight);background:var(--highlight);color:var(--base)}.day-chip[aria-pressed=true] b{color:var(--base)}.button.secondary{height:auto;margin-top:var(--space-3);padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--ink);background:none;color:var(--ink)}.skeleton{border-radius:var(--radius-md);background:var(--line);animation:pulse 1.4s ease-in-out infinite}.hero-skeleton{height:calc(var(--size-control) * 2.5)}.card-skeleton{height:calc(var(--size-control) * 2)}.row-skeleton{height:var(--size-control)}@keyframes pulse{0%,to{opacity:.45}50%{opacity:.9}}.splash{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:var(--base);animation:fade-out .4s ease 2s forwards}.splash-mark{position:relative;padding:var(--space-5)}.splash .wordmark{animation:write 1.1s cubic-bezier(.3,.7,.2,1) .15s both}.sparkle{position:absolute;fill:var(--ink);transform:scale(0);animation:twinkle 2.4s ease-in-out infinite}.sparkle-1{top:0;left:0;width:calc(var(--space-5) + var(--space-2));animation-delay:.9s}.sparkle-2{top:calc(var(--space-2) * -1);right:0;width:calc(var(--space-6) + var(--space-2));fill:var(--highlight);animation-delay:1.25s}.sparkle-3{right:calc(var(--space-5) * 2);bottom:0;width:var(--space-5);animation-delay:1.6s}@keyframes write{0%{clip-path:inset(calc(var(--space-5) * -1) 100% calc(var(--space-5) * -1) calc(var(--space-5) * -1))}to{clip-path:inset(calc(var(--space-5) * -1))}}@keyframes twinkle{0%,to{transform:scale(0) rotate(0)}22%{transform:scale(1.15) rotate(45deg)}40%{transform:scale(.85) rotate(60deg)}58%{transform:scale(0) rotate(90deg)}}@keyframes fade-out{to{opacity:0}}@media(prefers-reduced-motion:reduce){.skeleton,.modal,.sheet,.splash .wordmark{animation:none}.sparkle{animation:none;transform:scale(1)}}.amount{margin:var(--space-1) 0 var(--space-2);font-size:var(--text-amount);font-weight:700;letter-spacing:-.02em;line-height:1.1}.hero p{margin:0}.button.inverse{display:inline-flex;width:auto;margin-top:var(--space-3);padding:0 var(--space-5);border:var(--border-width) solid var(--base);background:none;color:var(--base);text-decoration:none}.button.compact{width:auto;margin:0;padding:var(--space-2) var(--space-3);white-space:nowrap}.fab-row{position:sticky;bottom:var(--space-4);align-self:flex-end;margin-top:auto}.fab{display:flex;align-items:center;justify-content:center;width:var(--size-control);height:var(--size-control);border-radius:50%;background:var(--ink);color:var(--base)}.avatar{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--size-avatar);height:var(--size-avatar);border-radius:50%;background:var(--ink-muted);color:var(--base);font-size:var(--text-body);font-weight:700}.avatar.ana{background:var(--person-ana)}.avatar.kim{background:var(--person-kim)}.avatar.mai{background:var(--person-mai)}.avatar.rose{background:var(--person-rose)}.grow{flex:1;min-width:0}.grow p,.money p{margin:var(--space-1) 0 0;font-size:var(--text-label)}.money{text-align:right}.positive{color:var(--success)}.negative{color:var(--danger)}.form{padding-bottom:var(--space-6)}.form label{display:block}.center{align-items:center;text-align:center}.done{color:var(--success);font-size:var(--size-control)}.progress{height:var(--space-2);border-radius:var(--radius-pill);background:var(--line)}.progress i{display:block;height:100%;border-radius:inherit;background:var(--highlight)}.check{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--space-5);height:var(--space-5);padding:0;border:var(--border-width) solid var(--ink);border-radius:50%;background:none;color:var(--base);cursor:pointer}.check[aria-pressed=true]{border-color:var(--highlight);background:var(--highlight)}.check .ms{font-size:var(--text-body)}.packed{color:var(--ink-muted);text-decoration:line-through}.capitalize{text-transform:capitalize}.row{display:flex;align-items:center;gap:var(--space-3)}.secret{margin:0;font-size:var(--text-title-md);font-weight:700;letter-spacing:.04em;word-break:break-all}.block{display:block}.wheel{display:block;width:100%;max-width:var(--size-wheel)}.wheel .turning{transition:transform 4s cubic-bezier(.2,.8,.2,1)}.wedge{stroke:var(--ink);stroke-width:2}.wedge.red{fill:var(--highlight)}.wedge.plain{fill:var(--base)}.wheel-label{fill:var(--ink);font-size:var(--text-caption);font-weight:700;text-anchor:middle;dominant-baseline:middle}.wheel-label.on-red{fill:var(--base)}.pointer{fill:var(--ink)}.option{position:relative;display:flex;justify-content:space-between;width:100%;overflow:hidden;padding:var(--space-4);border:var(--border-width) solid var(--line);border-radius:var(--radius-pill);background:none;font-weight:700;text-align:left;cursor:pointer}.option i{position:absolute;inset:0 auto 0 0;background:var(--line)}.option span{position:relative}.option[aria-pressed=true]{border-color:var(--highlight);color:var(--base)}.option[aria-pressed=true] i{background:var(--highlight)}.vote{display:flex;flex-direction:column;align-items:center;min-width:var(--size-control);padding:0;border:0;background:none;font-size:var(--text-label);font-weight:700;cursor:pointer}.vote[aria-pressed=true]{color:var(--highlight)}.spread{justify-content:space-between}.pin{display:flex;align-items:center;justify-content:center;width:calc(var(--space-5) + var(--space-1));height:calc(var(--space-5) + var(--space-1));padding:0;border:var(--border-width-strong) solid var(--base);border-radius:50%;background:var(--highlight);color:var(--base);font-size:var(--text-label);font-weight:700;cursor:pointer}.pin.you{background:var(--ink)}.cat{width:var(--space-5);height:var(--space-5)}.cat-eye{fill:currentColor}.tab[aria-current=page] .cat-eye{fill:var(--highlight)}.center .button{align-self:stretch}.amount-row{display:flex;align-items:baseline;gap:var(--space-3)}.symbol{color:var(--ink-muted);font-size:var(--text-title-lg);font-weight:500}input.amount-input{height:auto;padding:0;border:0;border-radius:0;font-size:var(--text-display);font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.avatar-pick{padding:calc(var(--space-1) / 2);border:var(--border-width-strong) solid transparent;border-radius:50%;background:none;cursor:pointer}.avatar-pick[aria-pressed=true]{border-color:var(--ink)}.person-row{min-height:var(--size-control);border-bottom:var(--border-width) solid var(--line)}input.share-input{width:calc(var(--size-control) * 2);height:var(--size-icon-button);padding:0 var(--space-4);text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.fill{min-height:100%}.delete{display:flex;align-items:center;padding:var(--space-1);border:0;background:none;color:var(--danger);cursor:pointer}.trip-open{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.trip{width:100%;background:none;text-align:left;cursor:pointer}.trip.current{border-color:var(--highlight);background:var(--highlight);color:var(--base)}.chip.trip-chip{display:inline-flex;align-items:center;align-self:flex-start;gap:var(--space-1);color:inherit}.chip.trip-chip .ms{font-size:var(--space-4)}.cards{align-items:stretch}.cards>.card{min-width:0}.banner{position:fixed;top:0;right:0;left:0;z-index:5;display:flex;gap:var(--space-3);max-width:var(--size-screen);margin:0 auto;padding:var(--space-3) var(--space-4);background:var(--ink);color:var(--base)}.banner p{margin:var(--space-1) 0 0}.alert.info{border-color:var(--line);color:var(--ink)}.notice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);max-width:var(--size-screen);height:100%;margin:0 auto;padding:var(--space-5);text-align:center}.notice .button{align-self:stretch}.notice-icon{color:var(--highlight);font-size:calc(var(--space-6) * 2)}.search-bar{display:flex;align-items:center;gap:var(--space-3);height:var(--size-control);padding:0 var(--space-5);border:var(--border-width) solid var(--line);border-radius:var(--radius-pill);color:var(--ink-muted)}.search-bar input{flex:1;height:auto;padding:0;border:0;border-radius:0}.search-bar input:focus{outline:none}.dot{width:var(--space-3);height:var(--space-3);border-radius:50%}.dot.live{background:var(--highlight)}.chip{display:inline-flex;align-items:center;gap:var(--space-2)}.map-box{position:relative;height:var(--size-map);overflow:hidden;border:var(--border-width) solid var(--line);border-radius:var(--radius-md);touch-action:none}.map-box .maplibregl-canvas-container,.map-box .maplibregl-canvas{touch-action:none!important}.map-box .map{position:absolute;inset:0}.zoom-controls{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.zoom-controls button{display:flex;align-items:center;justify-content:center;width:var(--space-6);height:var(--space-6);padding:0;border:var(--border-width) solid var(--line);border-radius:50%;background:var(--base);color:var(--ink);cursor:pointer}.map-chip{padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--line);border-radius:var(--radius-pill);background:var(--base);font-size:var(--text-label);font-weight:700;white-space:nowrap}.pin.selected{outline:var(--border-width-strong) solid var(--ink)}.place-row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}.login-top{display:flex;align-items:center;justify-content:center;margin-top:auto}input[type=date]{display:block;appearance:none;text-align:left}.rows{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.rows>li{border-bottom:var(--border-width) solid var(--line)}.rows>li:last-child{border-bottom:0}.row-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) 0;border:0;background:none;font:inherit;text-align:left;cursor:pointer}.hero-icon{position:absolute;top:50%;right:var(--space-5);font-size:var(--text-amount);transform:translateY(-50%)}.countdown+p{font-size:var(--text-label)}.cards>.card.stack{gap:var(--space-1)}.hint .ms{font-size:var(--text-body)}.row-item .muted{font-size:var(--text-label);font-weight:400}.avatar.large{width:var(--size-control);height:var(--size-control);font-size:var(--text-title-md)}.settle-people{display:flex;align-items:flex-start;justify-content:center;gap:var(--space-4);margin-top:var(--space-2)}.settle-people .stack{gap:var(--space-2)}.center-chips{justify-content:center}.end{text-align:right}.avatars{display:flex}.avatars .avatar{width:calc(var(--space-5) + var(--space-1));height:calc(var(--space-5) + var(--space-1));margin-right:calc(var(--space-1) * -1);border:var(--border-width) solid var(--highlight);font-size:var(--text-label)}.push-bottom{margin-top:auto}.screen>.form{flex:1}.row.top{align-items:flex-start}.modal{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--ink) 40%,transparent);animation:fade-in .2s ease-out}.sheet{width:100%;max-width:var(--size-screen);max-height:90%;overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--base);animation:slide-up .28s cubic-bezier(.32,.72,0,1)}.modal.closing{opacity:0;transition:opacity .2s ease-in}.modal.closing .sheet{transform:translateY(100%);transition:transform .22s ease-in}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}.edit-stop{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.sheet .screen{height:auto;min-height:0;overflow:visible}.rows.balances{padding:0 var(--space-4);border:var(--border-width) solid var(--line);border-radius:var(--radius-md)}.fab-float{position:absolute;right:0;bottom:var(--space-4)}.hero .row.spread{align-items:flex-end;gap:var(--space-4)}.hero .button.inverse{flex-shrink:0;margin-top:0}.form-footer{position:sticky;bottom:0;display:flex;flex-direction:column;gap:var(--space-2);margin-top:auto;padding:var(--space-3) 0 calc(var(--space-5) + env(safe-area-inset-bottom));background:var(--base)}.form-footer .button.secondary{height:var(--size-control);margin-top:0}.screen:has(.form-footer),.screen:has(.form-footer) .form{padding-bottom:0}.sheet .form,.sheet .screen{padding-bottom:0}.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3)}.button.danger{background:var(--danger)}.top-bar [aria-label=Close]{order:2;margin-left:auto}.card.linked{border-color:var(--highlight)}.select{position:relative;display:block}.select select{padding-right:calc(var(--space-5) + var(--space-6));color:inherit;font:inherit;font-size:var(--text-input);appearance:none}.select .ms{position:absolute;top:50%;right:var(--space-5);transform:translateY(-50%);pointer-events:none}.avatar+.delete{margin-left:calc(var(--space-2) * -1)}.ptr{display:flex;align-items:center;justify-content:center;margin-bottom:calc(var(--space-4) * -1)}.ptr.refreshing{height:var(--space-6)}.ptr-sparkle{width:var(--space-5);fill:var(--highlight)}.ptr.refreshing .ptr-sparkle{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.push-right{margin-left:auto;flex-wrap:nowrap}.two>*{min-width:0}.two input{min-width:0;max-width:100%}.button.secondary.destructive{border-color:var(--danger);color:var(--danger)}
