:root{--bg: #f5f4f0;--surface: #ffffff;--surface-2: #eeede8;--fg: #1a1a17;--muted: #6f6e68;--line: #e3e1da;--accent: #0f766e;--accent-strong: #0b5f59;--accent-fg: #ffffff;--accent-soft: #e0f2ef;--user: #1f5f5a;--user-fg: #f4fbf9;--ok: #1a7f4b;--warn: #b45309;--err: #b42318;--err-bg: #fdf1ef;--shadow: 0 1px 2px rgba(20, 20, 16, .06), 0 6px 20px -12px rgba(20, 20, 16, .25);--radius: 16px;--radius-bubble: 20px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0f1110;--surface: #191c1a;--surface-2: #222623;--fg: #ecebe6;--muted: #9a9b95;--line: #2a2e2b;--accent: #5fd3c4;--accent-strong: #7fe0d3;--accent-fg: #06201c;--accent-soft: #143430;--user: #1f6f66;--user-fg: #f1fbf9;--ok: #4ade80;--warn: #fbbf24;--err: #f87171;--err-bg: #2a1615;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -12px rgba(0, 0, 0, .6)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Segoe UI,Roboto,Inter,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#root{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:max(16px,1em)}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.shell{min-height:100dvh;display:flex;flex-direction:column;max-width:34rem;margin:0 auto}.top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:.6rem;padding:calc(.6rem + var(--safe-top)) 1rem .6rem;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px)}.top .brand,.top .back{flex:none;width:2.25rem;height:2.25rem;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;font-size:1.35rem;line-height:1;text-decoration:none;cursor:pointer}.top .title{flex:1;font-weight:700;letter-spacing:-.01em}.top .newbill{font-size:.9rem;padding:.35rem .55rem;border-radius:999px;text-decoration:none;transition:background .15s var(--ease)}.top .newbill:active{background:var(--accent-soft)}.body{flex:1;padding:.75rem 1rem calc(5.25rem + var(--safe-bottom) + var(--kb, 0px));scroll-behavior:smooth}.actions{position:fixed;left:50%;bottom:0;width:100%;max-width:34rem;z-index:2;transform:translate(-50%,calc(-1 * var(--kb, 0px)));transition:transform .15s var(--ease);padding:.6rem .9rem calc(.6rem + var(--safe-bottom));background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px)}.actions-note{margin:0 0 .5rem;text-align:center;font-size:.85rem;color:var(--muted)}h1{font-size:clamp(1.3rem,1rem + 1.5vw,1.6rem);line-height:1.2;letter-spacing:-.02em;margin:.5rem 0 .25rem}.lede{color:var(--muted);margin:0 0 1.25rem}.hint{color:var(--muted);margin:1rem 0 0}.hint.small,.small{font-size:.85rem}.warn{color:var(--warn)}.muted{color:var(--muted)}.link{border:0;background:none;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.5rem 1rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .12s var(--ease),background .15s var(--ease),opacity .15s var(--ease)}.button.big{width:100%;min-height:3.1rem;font-size:1.02rem}.button.primary{background:var(--accent);color:var(--accent-fg);border-color:transparent}.button.primary:not(:disabled):hover{background:var(--accent-strong)}.button.ghost{background:transparent;border-style:dashed;color:var(--muted);width:100%;margin-top:.5rem}.button:disabled{opacity:.4;cursor:not-allowed}.button:not(:disabled):active{transform:scale(.97)}.stack{display:flex;flex-direction:column;gap:.6rem}.share-row{display:grid;grid-template-columns:1.15fr 1fr;gap:.5rem}.share-row .button{padding-inline:.75rem}.spinner{display:flex;align-items:center;gap:.75rem;padding:1.25rem 0;color:var(--muted)}.dot{width:12px;height:12px;border-radius:50%;background:var(--accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(.6);opacity:.4}50%{transform:scale(1);opacity:1}}.errorbox{margin:1rem 0;padding:.75rem 1rem;border-radius:var(--radius);background:var(--err-bg);color:var(--err)}.issue{margin:.35rem 0 0;font-size:.85rem}.issue.error{color:var(--err)}.issue.warning{color:var(--warn)}.issue .link{margin-left:.5rem;color:inherit;font-weight:600}.chat{display:flex;flex-direction:column;gap:.55rem;padding-bottom:.5rem}.bubble{max-width:86%;padding:.7rem .95rem;border-radius:var(--radius-bubble);line-height:1.42;overflow-wrap:anywhere;animation:rise .28s var(--ease) both;transform-origin:bottom}@keyframes rise{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.bubble p{margin:0}.bubble>*+*{margin-top:.6rem}.bubble.app{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:6px;box-shadow:var(--shadow)}.bubble.user{align-self:flex-end;background:var(--user);color:var(--user-fg);border-bottom-right-radius:6px;white-space:pre-wrap}.bubble.error{border-color:color-mix(in srgb,var(--err) 50%,var(--line));color:var(--err)}.bubble.done{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:var(--shadow),0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.bubble.wide{max-width:100%;align-self:stretch}.bubble.photo{padding:.3rem;width:52%;max-width:52%}.bubble.photo .photo-open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.bubble.photo img{display:block;width:100%;max-height:240px;object-fit:cover;object-position:top;border-radius:16px}.viewer{position:fixed;inset:0;z-index:10;background:#080a09f0;display:flex;flex-direction:column;animation:fade .18s var(--ease) both}@keyframes fade{0%{opacity:0}to{opacity:1}}.viewer-bar{display:flex;justify-content:flex-end;gap:.5rem;padding:calc(.6rem + var(--safe-top)) .9rem .6rem}.viewer-btn{width:2.75rem;height:2.75rem;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffff1f;color:#fff;cursor:pointer}.viewer-scroll{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;padding:0 0 calc(1rem + var(--safe-bottom))}.viewer-scroll img{display:block;width:100%;height:auto;transition:transform .2s var(--ease)}.viewer-scroll.sideways{display:grid;place-items:center}.viewer-scroll.sideways img{width:auto;height:100vw;max-height:100vw}.bubble .button{width:100%}.bubble .share-row .button{width:auto}.bubble .stack .button{width:100%}.bubble .roster{margin-top:.5rem}.bubble .roster ul{margin:.4rem 0 0;padding-left:1.1rem;font-size:.85rem}.bubble .small.warn{margin-top:.5rem}.readback{margin:0;padding-left:1.1rem}.readback li+li{margin-top:.2rem}.readback li.muted strong{font-weight:600}.typing{display:inline-flex;gap:4px;padding:.25rem 0}.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:pulse 1.2s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}.examples.in-bubble{display:flex;flex-direction:column;gap:.4rem;margin-top:.6rem}.example{text-align:left;padding:.5rem .75rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--fg);cursor:pointer;font-size:.9rem;transition:transform .12s var(--ease),background .15s var(--ease)}.example:before{content:"“";color:var(--muted)}.example:after{content:"”";color:var(--muted)}.example:active{transform:scale(.98)}.me-name{display:inline-block;width:7rem;padding:.05rem .4rem;border:0;border-bottom:2px solid var(--accent);border-radius:0;background:transparent;font-weight:700;color:var(--fg)}.me-name::placeholder{color:var(--muted);font-weight:500}.me-name:focus{outline:none;background:var(--accent-soft)}.receipt-summary{margin-top:.6rem;font-size:.95rem}.receipt-summary ul{list-style:none;margin:0;padding:0}.receipt-summary li{display:flex;justify-content:space-between;gap:1rem;padding:.22rem 0;border-bottom:1px solid var(--line)}.receipt-summary .num{font-variant-numeric:tabular-nums;white-space:nowrap}.receipt-summary .more{display:block;width:100%;padding:.4rem 0;border:0;background:none;color:var(--accent);font-size:.9rem;cursor:pointer}.receipt-summary dl{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;margin:.5rem 0 0;font-variant-numeric:tabular-nums}.receipt-summary dt{color:var(--muted)}.receipt-summary dd{margin:0;text-align:right}.editor{margin-top:.6rem}.items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.item{background:var(--surface-2);border-radius:14px;padding:.55rem .65rem}.item-row{display:flex;gap:.45rem;align-items:center}.item-row+.item-row{margin-top:.45rem}.item input,.item select,.totals-edit input{min-height:2.4rem;padding:.3rem .5rem;border:1px solid transparent;border-radius:10px;background:var(--surface);min-width:0}.item input:focus,.item select:focus,.totals-edit input:focus{outline:2px solid var(--accent);outline-offset:-1px}.item .name{flex:1;font-weight:500}.item .category{flex:none;width:7.2rem;font-size:.9rem;appearance:none;-webkit-appearance:none;padding-right:.4rem}.item .remove,.person .remove{flex:none;width:2rem;height:2rem;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer}.nums{justify-content:flex-end}.nums label{display:flex;flex-direction:column;gap:.15rem;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.nums label:first-child input{width:3.4rem}.nums label input{width:5.4rem;text-align:right;font-variant-numeric:tabular-nums}input.invalid{outline:2px solid var(--err)!important}.totals-edit{margin-top:.75rem;background:var(--surface-2);border-radius:14px;padding:.25rem .75rem}.total-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid var(--line)}.total-row:last-child{border-bottom:0}.total-row.strong{font-weight:700}.total-row input{width:7rem;text-align:right;font-variant-numeric:tabular-nums}.total-row input.currency{width:4rem;text-transform:uppercase}details{margin:0}summary{cursor:pointer;color:var(--muted);font-size:.9rem;-webkit-user-select:none;user-select:none}details img{max-width:100%;border-radius:var(--radius);margin-top:.75rem}.chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.5rem}.chip{min-height:2.35rem;padding:.35rem .9rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s var(--ease),background .15s var(--ease),color .15s var(--ease)}.chip:active{transform:scale(.95)}.chip.on{background:var(--accent);border-color:transparent;color:var(--accent-fg);font-weight:600}.people{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.person{display:flex;align-items:center;gap:.5rem;background:var(--surface-2);border-radius:12px;padding:.15rem .6rem .15rem .75rem}.person.me{box-shadow:inset 0 0 0 1px var(--accent)}.person-edit{flex:1;min-height:2.4rem;border:0;background:transparent;padding:0}.person-edit:focus{outline:none}.tag{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);padding:.1rem .45rem;border-radius:999px}.stepper{display:grid;grid-template-columns:auto auto auto;justify-content:start;align-items:center;gap:.6rem;margin:.6rem 0 0}.stepper button{width:3rem;height:3rem;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);font-size:1.5rem;cursor:pointer;transition:transform .12s var(--ease)}.stepper button:active{transform:scale(.92)}.stepper button:disabled{opacity:.35}.stepper output{min-width:2.5rem;text-align:center;font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums}.mic{flex:none;width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:var(--accent-soft);font-size:1.25rem;cursor:pointer;transition:transform .12s var(--ease)}.mic:active{transform:scale(.92)}.mic.on{background:var(--ok);color:#fff;animation:ring 1.2s ease-out infinite}@keyframes ring{0%{box-shadow:0 0 color-mix(in srgb,var(--ok) 50%,transparent)}to{box-shadow:0 0 0 14px transparent}}.cards{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.45rem}.card{background:var(--surface-2);border-radius:14px;padding:.6rem .8rem;cursor:pointer;transition:background .15s var(--ease)}.card.me{box-shadow:inset 0 0 0 1px var(--accent)}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.card-name{font-size:1.02rem;font-weight:600}.card-total{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.01em}.card-items{margin:.15rem 0 0;color:var(--muted);font-size:.85rem}.card-extras{margin:.3rem 0 0;font-size:.78rem;font-variant-numeric:tabular-nums;animation:rise .2s var(--ease) both}.segmented{display:grid;grid-template-columns:1fr 1fr;margin-top:.6rem;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface-2)}.segmented button{min-height:2.4rem;border:0;background:transparent;cursor:pointer;font-size:.85rem;transition:background .15s var(--ease)}.segmented button.on{background:var(--accent);color:var(--accent-fg);font-weight:600}.share{margin-top:.75rem}.share .actions-note{margin:.4rem 0 0}.names{margin-top:.6rem}.composer{display:flex;align-items:flex-end;gap:.45rem}.composer textarea{flex:1;min-height:2.75rem;max-height:8rem;padding:.65rem .9rem;border:1px solid var(--line);border-radius:1.4rem;background:var(--surface);line-height:1.4;resize:none;transition:border-color .15s var(--ease)}.composer textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.composer textarea:disabled{opacity:.6}.composer .attach,.composer .send{flex:none;width:2.75rem;height:2.75rem;display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer;transition:transform .12s var(--ease),opacity .15s var(--ease)}.composer .attach{background:var(--accent-soft);font-size:1.25rem}.composer .send{background:var(--accent);color:var(--accent-fg);font-size:1.3rem;font-weight:700}.composer .attach:active,.composer .send:not(:disabled):active{transform:scale(.92)}.composer .send:disabled{opacity:.35}main.probe{max-width:46rem;margin:0 auto;padding:1.5rem 1rem 4rem}.probe .picker{display:block;border:2px dashed var(--line);border-radius:.75rem;padding:1.5rem;text-align:center;cursor:pointer}.probe .meta{color:var(--muted);font-size:.875rem}.probe table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;white-space:nowrap}.probe th,.probe td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--line)}.probe .num{text-align:right}.probe .totals{display:grid;grid-template-columns:auto auto;gap:.2rem 1rem;justify-content:end;margin:1rem 0}.probe .totals dd{margin:0;text-align:right}.probe .error{color:var(--err)}.probe .ok{color:var(--ok)}.probe pre{overflow-x:auto;background:var(--surface-2);padding:.75rem;border-radius:.5rem;font-size:.8rem}.probe img{max-width:100%;border-radius:.5rem;margin-top:.75rem}.button svg,.with-icon svg,.photo-placeholder svg{flex:none}.with-icon,.photo-placeholder{display:inline-flex;align-items:center;gap:.4rem}.photo-placeholder{padding:.5rem .6rem}.logo{display:block;border-radius:8px;box-shadow:0 1px 2px #00000026}.item .category{width:6.4rem;padding:.3rem 1.6rem .3rem .6rem;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - .95rem) 55%,calc(100% - .65rem) 55%;background-size:5px 5px;background-repeat:no-repeat}.item .remove svg{display:block;margin:auto}.top .title{font-size:1.05rem}
