@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f1f6f0;--surface: #ffffff;--text: #18221a;--muted: #5f6d61;--line: #dce7da;--accent: #2f7d4f;--accent-text: #ffffff;--toast-action: #5cbf85;--danger: #c0392b;--warn: #b26a00;--shadow: 0 1px 2px rgb(0 0 0 / .06);color-scheme:light}:root[data-accent=lagoon]{--bg: #eef5f9;--text: #13212b;--muted: #596a76;--line: #d8e5ee;--accent: #1d6fa5;--toast-action: #5eb3ea}:root[data-accent=coral]{--bg: #fbf2ee;--text: #2a1915;--muted: #76625b;--line: #f0ddd5;--accent: #b5432c;--toast-action: #f28a6b}:root[data-theme=dark]{--bg: #0e1510;--surface: #17211a;--text: #e4eee5;--muted: #93a796;--line: #25332a;--accent: #5cbf85;--accent-text: #0d1a12;--toast-action: #2f7d4f;--danger: #e0645a;--warn: #e0a040;--shadow: none;color-scheme:dark}:root[data-theme=dark][data-accent=lagoon]{--bg: #0b141b;--surface: #14202a;--text: #e2edf4;--muted: #90a4b2;--line: #22323f;--accent: #5eb3ea;--accent-text: #06202f;--toast-action: #1d6fa5}:root[data-theme=dark][data-accent=coral]{--bg: #1a110e;--surface: #251915;--text: #f4e7e2;--muted: #b39b93;--line: #3a2823;--accent: #f28a6b;--accent-text: #2b0e07;--toast-action: #b5432c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e1510;--surface: #17211a;--text: #e4eee5;--muted: #93a796;--line: #25332a;--accent: #5cbf85;--accent-text: #0d1a12;--toast-action: #2f7d4f;--danger: #e0645a;--warn: #e0a040;--shadow: none;color-scheme:dark}:root:not([data-theme=light])[data-accent=lagoon]{--bg: #0b141b;--surface: #14202a;--text: #e2edf4;--muted: #90a4b2;--line: #22323f;--accent: #5eb3ea;--accent-text: #06202f;--toast-action: #1d6fa5}:root:not([data-theme=light])[data-accent=coral]{--bg: #1a110e;--surface: #251915;--text: #f4e7e2;--muted: #b39b93;--line: #3a2823;--accent: #f28a6b;--accent-text: #2b0e07;--toast-action: #b5432c}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.app{max-width:560px;margin:0 auto;min-height:100dvh;padding:0 16px calc(96px + env(safe-area-inset-bottom))}.header{padding:28px 4px 12px}.header h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em}.count{margin:4px 0 0;color:var(--muted);font-size:14px}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.row-wrap{position:relative;border-radius:12px;overflow:hidden}.row-bg{position:absolute;top:1px;right:1px;bottom:1px;left:1px;opacity:0;display:flex;justify-content:space-between;align-items:center;padding:0 18px;background:var(--danger);color:#fff;font-size:14px;font-weight:600}.row-wrap:has(.row.dragging) .row-bg{opacity:1}.list.reordering .row-wrap{transition:transform .15s ease}.list.reordering .row-wrap.lifted{transition:none;z-index:2;overflow:visible}.row-wrap.lifted .row-bg{display:none}.row-wrap.lifted .row{box-shadow:0 10px 28px #00000038;border-color:var(--accent)}.grip-spacer{flex:none;width:6px}.grip{flex:none;width:30px;height:44px;margin-right:-10px;display:grid;place-items:center;color:var(--muted);opacity:.7;touch-action:none;cursor:grab}.row-wrap.lifted .grip{cursor:grabbing;opacity:1}.grip svg circle{fill:currentColor;stroke:none}.row{position:relative;display:flex;align-items:center;gap:4px;min-height:52px;padding:0 4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);touch-action:pan-y;transition:transform .18s ease}.row.dragging{transition:none}.check{flex:none;width:44px;height:44px;display:grid;place-items:center}.check svg{width:24px;height:24px;padding:3px;border:2px solid var(--muted);border-radius:50%;stroke:transparent;transition:background .15s,border-color .15s}.row.checked .check svg{background:var(--accent);border-color:var(--accent);stroke:var(--accent-text)}.name{flex:1;min-width:0;text-align:left;padding:14px 4px;overflow-wrap:anywhere}.row.checked .name{color:var(--muted);text-decoration:line-through}.edit{flex:1;min-width:0;font:inherit;color:var(--text);background:transparent;border:none;border-bottom:2px solid var(--accent);padding:10px 4px;outline:none}.delete{flex:none;width:44px;height:44px;display:grid;place-items:center;color:var(--muted);border-radius:50%}.delete:hover{color:var(--danger)}.bought{margin-top:20px}.bought-toggle{display:flex;align-items:center;gap:6px;padding:8px 4px;color:var(--muted);font-size:14px;font-weight:600}.bought-toggle svg{width:16px;height:16px;transition:transform .15s}.bought-toggle svg.open{transform:rotate(90deg)}.empty{text-align:center;color:var(--muted);padding:72px 16px}.empty p{margin:4px 0}.empty-title{color:var(--text);font-weight:600;font-size:18px}.loading{color:var(--muted);text-align:center;padding:72px 16px}.splash{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px;text-align:center;color:var(--muted)}.splash p{margin:0}.splash-title{color:var(--text);font-size:24px;font-weight:700;margin-bottom:4px!important}.splash-button{margin-top:16px;padding:12px 20px;border-radius:12px;background:var(--accent);color:var(--accent-text);font-weight:600}.bottom{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 70%,transparent)}.bottom>*{max-width:528px;margin-left:auto;margin-right:auto}.add-bar{display:flex;gap:8px}.add-bar input{flex:1;min-width:0;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;outline:none}.add-bar input:focus{border-color:var(--accent)}.add-bar button{flex:none;padding:0 20px;border-radius:12px;background:var(--accent);color:var(--accent-text);font-weight:600}.add-bar button:disabled{opacity:.45;cursor:default}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 10px 10px 16px;border-radius:12px;background:var(--text);color:var(--bg);font-size:14px}.toast span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast button{flex:none;padding:6px 12px;color:var(--toast-action, var(--accent));font-weight:700}.header-row{display:flex;align-items:flex-start;gap:8px}.header-text{flex:1;min-width:0}.header-row h1{flex:1}.icon-button{flex:none;width:44px;height:44px;margin:-4px -8px 0;display:grid;place-items:center;border-radius:50%;color:var(--muted)}.icon-button:hover{color:var(--text)}.icon-button svg{width:24px;height:24px;stroke-width:1.8}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}.card h2{margin:0 0 8px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.muted{color:var(--muted);margin:0 0 14px;line-height:1.45}.google-button,.secondary-button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;border:1px solid var(--line);background:var(--bg);font-weight:600}.google-button:disabled,.secondary-button:disabled{opacity:.6;cursor:default}.google-logo{width:20px;height:20px;stroke:none}.account{display:flex;align-items:center;gap:12px;margin:4px 0 16px}.account .muted{margin:0;font-size:14px;overflow-wrap:anywhere}.account-text{min-width:0}.account-name{margin:0;font-weight:600}.avatar{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover}.avatar-letter{display:grid;place-items:center;background:var(--accent);color:var(--accent-text);font-weight:700;font-size:18px}.notice{margin:12px 0 0;font-size:14px;color:var(--text)}.segmented{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--bg);border:1px solid var(--line)}.segmented button{flex:1;min-height:40px;border-radius:9px;color:var(--muted);font-weight:600;font-size:15px}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.version{text-align:center;color:var(--muted);font-size:13px;margin:24px 0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.name{display:flex;flex-direction:column;gap:2px}.name-text{overflow-wrap:anywhere}.details{font-size:13px;color:var(--muted)}.row.checked .details{text-decoration:none}.line-total{flex:none;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;padding-left:4px}.row.checked .line-total{color:var(--muted)}.delete{margin-left:-4px}.estimate{color:var(--text);font-weight:600}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#0006;animation:fade-in .15s ease}.sheet{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--surface);border-radius:20px 20px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px;animation:slide-up .2s ease}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(40px);opacity:.5}}.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto}.field{display:flex;flex-direction:column;gap:8px}.field>span:first-child{font-size:13px;font-weight:600;color:var(--muted)}.field input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;outline:none;width:100%;min-width:0}.field input:focus{border-color:var(--accent)}.qty-row{display:flex;gap:8px}.qty-row input{text-align:center;font-variant-numeric:tabular-nums}.step{flex:none;width:48px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:22px;line-height:1}.chips{display:flex;gap:6px}.chip{flex:1;min-width:0;min-height:38px;padding:0 4px;border-radius:19px;border:1px solid var(--line);background:var(--bg);color:var(--muted);font-weight:600;font-size:15px}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.price-input{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding-left:14px}.price-input:focus-within{border-color:var(--accent)}.price-input span{color:var(--muted);font-weight:600}.price-input input{border:none;background:transparent;padding-left:0;font-variant-numeric:tabular-nums}.sheet-total{margin:0;color:var(--muted)}.sheet-total strong{color:var(--text);font-size:18px}.sheet-actions{display:flex;align-items:center;gap:8px}.sheet-actions .spacer{flex:1}.text-danger{color:var(--danger);font-weight:600;padding:12px 4px}.secondary-button.small{width:auto;padding:0 18px}.primary-button{min-height:48px;padding:0 24px;border-radius:12px;background:var(--accent);color:var(--accent-text);font-weight:600}.primary-button:disabled{opacity:.45;cursor:default}.price-row{display:flex;gap:8px}.price-row .price-input{flex:1;min-width:0}.segmented.compact{flex:none}.segmented.compact button{flex:none;min-height:0;padding:0 12px;font-size:14px}.title-button{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:0;text-align:left}.title-button h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-button svg{flex:none;width:22px;height:22px;color:var(--muted)}.header-row .icon-button+.icon-button{margin-left:-4px}.icon-button{position:relative}.icon-button.shared{color:var(--accent)}.share-count{position:absolute;top:4px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:var(--accent-text);font-size:11px;font-weight:700;line-height:16px}.sheet-title{margin:0;font-size:20px}.lists{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lists li{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.lists li.current{border-color:var(--accent)}.list-choice{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:12px 14px;text-align:left}.list-name{font-weight:600;overflow-wrap:anywhere}.list-meta{font-size:13px;color:var(--muted)}.muted.small{font-size:14px;margin:0}.primary-button.wide{width:100%}.invite-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.invite-code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-weight:700;letter-spacing:.12em;font-size:15px;padding:6px 10px;border-radius:8px;background:var(--bg);border:1px dashed var(--line)}.link-button{color:var(--accent);font-weight:600;font-size:14px;padding:8px 2px}.link-button:disabled{opacity:.5}.members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.members li{display:flex;align-items:center;gap:10px}.avatar.small{width:32px;height:32px;font-size:14px}.member-name{flex:1;min-width:0;overflow-wrap:anywhere}.badge{font-size:12px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:2px 8px}.sheet>.text-danger{align-self:flex-start}.banner{position:fixed;top:calc(12px + env(safe-area-inset-top));left:16px;right:16px;max-width:528px;margin:0 auto;z-index:30;padding:12px 16px;border-radius:12px;background:var(--accent);color:var(--accent-text);font-weight:600;box-shadow:0 6px 20px #0003;animation:fade-in .2s ease}.swatches{display:flex;gap:8px;margin-top:14px}.swatch{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--muted);font-size:14px;font-weight:600}.swatch.active{border-color:var(--text);color:var(--text)}.swatch-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff}.swatch-dot svg{width:16px;height:16px;stroke-width:3}.swatch-dot.green{background:#2f7d4f}.swatch-dot.lagoon{background:#1d6fa5}.swatch-dot.coral{background:#b5432c}.swatch.green{background:#f1f6f0}.swatch.lagoon{background:#eef5f9}.swatch.coral{background:#fbf2ee}:root[data-theme=dark] .swatch.green{background:#0e1510}:root[data-theme=dark] .swatch.lagoon{background:#0b141b}:root[data-theme=dark] .swatch.coral{background:#1a110e}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .swatch.green{background:#0e1510}:root:not([data-theme=light]) .swatch.lagoon{background:#0b141b}:root:not([data-theme=light]) .swatch.coral{background:#1a110e}}.list-tabs-row{display:flex;align-items:center;gap:6px;margin:-4px 0 12px}.list-tabs{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);padding-right:24px}.list-tabs::-webkit-scrollbar{display:none}.list-tab{flex:none;max-width:180px;min-height:36px;padding:0 14px;border-radius:18px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-tab.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.list-tab.new{display:inline-flex;align-items:center;gap:4px;color:var(--accent);border-style:dashed;border-color:var(--accent);background:transparent}.list-tab.new svg{width:16px;height:16px;stroke-width:2.6}.list-tab.new.compact{width:36px;padding:0;justify-content:center}.list-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}.list-toolbar .segmented.compact button{min-height:32px;font-size:13px}.group+.group{margin-top:16px}.group-title{display:flex;align-items:center;gap:6px;margin:0 4px 8px;font-size:14px;font-weight:700;color:var(--text)}.group-count{color:var(--muted);font-weight:600;font-size:13px}.category-chips{display:flex;flex-wrap:wrap;gap:6px}.category-chips .chip{flex:none;padding:0 12px;font-size:14px}.budget-summary{width:100%;display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-align:left;font-size:14px;font-weight:600}.budget-summary>svg{flex:none;color:var(--accent)}.budget-summary .chevron{color:var(--muted);width:18px;height:18px}.budget-summary-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.progress{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.progress>div{height:100%;border-radius:3px;background:var(--accent);transition:width .3s ease}.progress.warn>div{background:var(--warn)}.progress.over>div{background:var(--danger)}.budget-card .progress{height:10px;border-radius:5px;margin:10px 0 6px}.big-number{margin:0;font-size:34px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.budget-status{margin:0;font-weight:600;font-size:14px}.budget-status.warn{color:var(--warn)}.budget-status.over{color:var(--danger)}.budget-setting{display:flex;align-items:center;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:14px}.budget-setting form,.budget-setting .spacer,.card-title-row .spacer{flex:1}.price-input.grow{flex:1;min-width:0}.month-nav{display:flex;align-items:center;justify-content:space-between;margin:-4px -8px 12px}.month-title{font-weight:700;font-size:17px}.icon-button:disabled{opacity:.3;cursor:default}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stats>div{display:flex;flex-direction:column;gap:2px}.stat-number{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.store-list,.trips,.trip-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.store-list{gap:10px}.store-list li{display:grid;grid-template-columns:minmax(0,1fr) 70px auto;align-items:center;gap:10px;font-size:15px}.store-list li>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.store-bar>span{display:block;height:100%;background:var(--accent)}.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.card-title-row h2{margin:0}.trips li+li{border-top:1px solid var(--line)}.trip{width:100%;display:flex;align-items:center;gap:12px;padding:12px 0;text-align:left}.trip-date{flex:none;width:52px;font-size:13px;font-weight:600;color:var(--muted)}.trip-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.trip-store{font-weight:600;overflow-wrap:anywhere}.trip-items{gap:6px;max-height:200px;overflow-y:auto}.trip-items li{display:flex;justify-content:space-between;gap:8px;font-size:14px}.bought-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.done-button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:18px;background:var(--accent);color:var(--accent-text);font-size:14px;font-weight:600}.done-button svg{width:16px;height:16px;stroke-width:2.6}.sheet-form{display:flex;flex-direction:column;gap:16px}.hint{font-size:13px;color:var(--muted)}.access{gap:8px;max-width:400px;margin:0 auto}.access-icon{border-radius:18px;margin-bottom:4px}.access-heading{color:var(--text);font-weight:600}.access-form{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:12px}.access-form input{font:inherit;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:20px;letter-spacing:.12em;text-align:center;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;outline:none}.access-form input:focus{border-color:var(--accent)}.access-error{color:var(--danger)!important;font-weight:600}.feedback-text{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;resize:vertical;min-height:110px;outline:none}.feedback-text:focus{border-color:var(--accent)}.feedback-thanks{margin:0;font-size:17px;font-weight:600}.testing-card .muted{margin-bottom:12px}.select{width:100%;min-height:48px;padding:0 14px;font:inherit;font-weight:600;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;outline:none}.select:focus{border-color:var(--accent)}.currency-note{display:block;margin:10px 0 0}a.secondary-button{text-decoration:none;color:var(--text)}.delete-account{display:block;margin:14px auto 0;font-size:14px}.delete-text{margin:0;line-height:1.45}.delete-warning{margin:0;font-weight:700;color:var(--danger)}.danger-button{min-height:48px;padding:0 20px;border-radius:12px;background:var(--danger);color:#fff;font-weight:600}.danger-button:disabled{opacity:.6;cursor:default}.stats-link{margin-bottom:16px}.access-privacy{margin-top:18px;font-size:14px;color:var(--muted)}.stats-4{grid-template-columns:repeat(2,1fr)}.daily-chart{display:flex;align-items:flex-end;gap:3px;height:120px;margin-top:8px}.daily-bar{flex:1;height:100%;display:flex;align-items:flex-end}.daily-bar span{display:block;width:100%;min-height:2px;border-radius:3px 3px 0 0;background:var(--accent)}.chart-axis{display:flex;justify-content:space-between;margin-top:6px!important}.stats-list li{grid-template-columns:minmax(0,1fr) auto}:root{--elev: 0 1px 2px rgb(0 0 0 / .04), 0 6px 18px -8px rgb(0 0 0 / .14);--elev-strong: 0 2px 4px rgb(0 0 0 / .05), 0 12px 32px -10px rgb(0 0 0 / .28)}:root[data-theme=dark]{--elev: 0 0 0 1px var(--line);--elev-strong: 0 12px 32px -10px rgb(0 0 0 / .7), 0 0 0 1px var(--line)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--elev: 0 0 0 1px var(--line);--elev-strong: 0 12px 32px -10px rgb(0 0 0 / .7), 0 0 0 1px var(--line)}}html,body{font-family:Plus Jakarta Sans Variable,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.header h1{font-size:30px;font-weight:800;letter-spacing:-.03em}.count{font-weight:500}[data-cat=produce]{--cat: #3f9142}[data-cat=bakery]{--cat: #c8913a}[data-cat=meat]{--cat: #d1495b}[data-cat=dairy]{--cat: #3d7fd1}[data-cat=frozen]{--cat: #2aa7c4}[data-cat=pantry]{--cat: #d98b1b}[data-cat=snacks]{--cat: #e06c2b}[data-cat=drinks]{--cat: #8a5cd1}[data-cat=household]{--cat: #2a9d8f}[data-cat=personal]{--cat: #d660a2}[data-cat=other]{--cat: #8a8f87}.group+.group{margin-top:22px}.group-title{gap:10px;margin:0 2px 10px;font-size:15px;font-weight:800;letter-spacing:-.01em}.group-emoji{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;font-size:16px;background:color-mix(in srgb,var(--cat) 18%,var(--surface))}.list{gap:8px}.row-wrap{border-radius:16px;animation:rise .28s ease both}.row{min-height:60px;border:none;border-radius:16px;box-shadow:inset 4px 0 0 var(--cat, transparent),var(--elev)}.row.checked{background:color-mix(in srgb,var(--surface) 55%,var(--bg));box-shadow:inset 4px 0 color-mix(in srgb,var(--cat, transparent) 40%,transparent)}.name-text{font-weight:600}.line-total{font-weight:700}.check svg{border-color:color-mix(in srgb,var(--cat, var(--muted)) 55%,var(--muted))}.row.checked .check svg{animation:pop .38s cubic-bezier(.3,1.7,.6,1)}.name-text{align-self:flex-start}.row.checked .name-text{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 55% / 100% 1.5px no-repeat;animation:strike .35s ease-out}.row.checked .name{text-decoration:none}@keyframes pop{0%{transform:scale(.55)}to{transform:scale(1)}}@keyframes strike{0%{background-size:0 1.5px}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.budget-summary{gap:12px;padding:12px 14px;border:none;border-radius:18px;box-shadow:var(--elev)}.budget-summary>svg.wallet{width:28px;height:28px}.budget-summary-text{gap:2px}.budget-summary-main{font-size:15px;font-weight:700}.budget-summary-sub{font-size:13px;font-weight:500;color:var(--muted)}.budget-summary-sub.over{color:var(--danger)}.budget-summary>svg.ring{flex:none;width:46px;height:46px}.ring-track{fill:none;stroke:var(--line);stroke-width:4}.ring-value{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;transition:stroke-dasharray .6s ease}.ring.warn .ring-value{stroke:var(--warn)}.ring.over .ring-value{stroke:var(--danger)}.ring text{stroke:none;font-family:inherit;font-size:8.5px;letter-spacing:-.02em;font-weight:800;fill:var(--text)}.list-tab{font-weight:700;border:none;box-shadow:var(--elev)}.list-tab.new{box-shadow:none}.bottom{background:linear-gradient(to top,var(--bg) 50%,transparent);padding-top:18px}.bottom .add-bar{gap:6px;padding:6px 6px 6px 8px;border-radius:999px;background:var(--surface);box-shadow:var(--elev-strong)}.bottom .add-bar input{border:none;background:transparent;border-radius:999px;padding:11px 10px}.bottom .add-bar input:focus{border-color:transparent}.bottom .add-bar button{width:46px;height:46px;padding:0;border-radius:50%;display:grid;place-items:center;transition:transform .15s ease,opacity .15s ease}.bottom .add-bar button:not(:disabled):active{transform:scale(.92)}.bottom .add-bar button svg{width:22px;height:22px;stroke-width:2.6}.empty{padding:48px 16px}.empty-art{width:120px;height:120px;margin-bottom:6px;animation:float 4s ease-in-out infinite}.empty-art circle,.empty-art path{stroke:none}.lemon-rind{fill:#f6d743}.lemon-pith{fill:#fff4b8}.lemon-flesh{fill:#f9e27a}.lemon-segments line{stroke:#fff4b8;stroke-width:3;stroke-linecap:round}.lemon-leaf{fill:var(--accent)}@keyframes float{50%{transform:translateY(-6px) rotate(-3deg)}}.card{border:none;border-radius:20px;box-shadow:var(--elev)}.sheet{border-radius:26px 26px 0 0}.segmented{border:none;background:color-mix(in srgb,var(--line) 55%,var(--bg))}@media(prefers-reduced-motion:reduce){.row-wrap,.row.checked .check svg,.row.checked .name-text,.empty-art{animation:none}}:root{--tab-bar-h: 64px}.app{padding-bottom:calc(170px + env(safe-area-inset-bottom))}.tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;justify-content:center;gap:4px;min-height:var(--tab-bar-h);padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line)}.tab{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:2px 0;color:var(--muted);font-size:12px;font-weight:600}.tab-icon{position:relative;width:58px;height:30px;border-radius:15px;display:grid;place-items:center;transition:background .2s ease,color .2s ease}.tab svg{width:23px;height:23px;stroke-width:1.9}.tab.active{color:var(--text);font-weight:700}.tab.active .tab-icon{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.tab:active .tab-icon{transform:scale(.94)}.tab-badge{position:absolute;top:-3px;right:9px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:var(--accent-text);font-size:10px;font-weight:800;line-height:16px}.bottom{bottom:calc(var(--tab-bar-h) + env(safe-area-inset-bottom));padding-bottom:10px}.household-card{display:flex;flex-direction:column;gap:16px}.budget-setting strong{white-space:nowrap}.app{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.tab-add{flex:none;align-self:center;width:48px;height:48px;margin:0 6px;border-radius:16px;display:grid;place-items:center;background:var(--accent);color:var(--accent-text);box-shadow:0 6px 16px -6px color-mix(in srgb,var(--accent) 70%,transparent);transition:transform .15s ease}.tab-add:active{transform:scale(.92)}.tab-add svg{width:24px;height:24px;stroke-width:2.6}.add-sheet-form{display:flex;flex-direction:column;gap:10px}.add-sheet-label{font-size:13px;font-weight:700;color:var(--muted)}.add-sheet-form .add-bar{gap:6px;padding:6px 6px 6px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line)}.add-sheet-form .add-bar:focus-within{border-color:var(--accent)}.add-sheet-form .add-bar input{border:none;background:transparent;padding:11px 10px}.add-sheet-form .add-bar button{width:46px;height:46px;padding:0;border-radius:50%;display:grid;place-items:center}.add-sheet-form .add-bar button svg{width:22px;height:22px;stroke-width:2.6}.added-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.added-chips li{padding:6px 12px;border-radius:14px;font-size:14px;font-weight:600;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--text);animation:rise .25s ease both}.add-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.add-actions button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border-radius:16px;background:var(--bg);border:1px solid var(--line);font-size:13px;font-weight:700;line-height:1.2;text-align:center}.add-actions button span{font-size:24px}
