:root{--bg:#f4f6f3;--surface:#fff;--text:#1a2420;--text-muted:#66756d;--border:#e1e6e1;--primary:#1f8a53;--primary-dark:#166a3f;--primary-contrast:#fff;--danger:#c4453a;--favorite:#d99a00;--checked-bg:#eef1ee;--shadow:0 1px 3px #141e1914, 0 1px 2px #141e190f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121815;--surface:#1b2420;--text:#eaf0ec;--text-muted:#93a49b;--border:#2c3a33;--primary:#35b876;--primary-dark:#2a9862;--primary-contrast:#06150d;--danger:#e2685d;--favorite:#f0b429;--checked-bg:#1f2a25;--shadow:0 1px 3px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121815;--surface:#1b2420;--text:#eaf0ec;--text-muted:#93a49b;--border:#2c3a33;--primary:#35b876;--primary-dark:#2a9862;--primary-contrast:#06150d;--danger:#e2685d;--favorite:#f0b429;--checked-bg:#1f2a25;--shadow:0 1px 3px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}#app{flex-direction:column;max-width:640px;min-height:100vh;margin:0 auto;display:flex}button{font:inherit;color:inherit}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.65em .8em}input:focus,select:focus,button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:10px;padding:.65em 1.1em;font-weight:600}.btn.primary{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.icon-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.4em;font-size:1.15rem;line-height:1;display:inline-flex}.icon-btn:hover{background:var(--checked-bg)}.confirm-armed{background:var(--danger)!important;color:#fff!important}.home{flex-direction:column;gap:1.25rem;padding:1.5rem 1rem 3rem;display:flex;position:relative}.home-toolbar{gap:.2rem;display:flex;position:absolute;top:1rem;right:1rem}.home-toolbar .icon-btn{font-size:1.2rem}.home-header{text-align:center;padding:1rem 0}.home-header .logo{font-size:2.6rem}.home-header h1{margin:.3rem 0 .2rem;font-size:1.5rem}.tagline{color:var(--text-muted);margin:0}.privacy-note{margin-top:.4rem;font-size:.8rem}.add-form-hint{color:var(--text-muted);margin:.4rem 0 0;font-size:.78rem}.totals-bar{font-variant-numeric:tabular-nums;text-align:right;margin:.6rem 0 0;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1rem}.card h2{margin:0 0 .7rem;font-size:1.05rem}.row{gap:.5rem;display:flex}.row input{flex:1;min-width:0}.error{color:var(--danger);margin:.6rem 0 0;font-size:.9rem}.recent-subheading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:.9rem 0 .4rem;font-size:.8rem;font-weight:600}.recent-subheading:first-of-type{margin-top:0}.recent-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.recent-item{align-items:center;gap:.3rem;display:flex}.recent-open{background:var(--bg);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:10px;flex:1;align-items:center;padding:.6em .8em;display:flex}.recent-name{font-weight:600}.recent-favorite{color:var(--text-muted)}.recent-favorite[aria-pressed=true]{color:var(--favorite)}.list-view{flex-direction:column;min-height:100vh;padding-bottom:2rem;display:flex}.list-privacy-note{color:var(--text-muted);text-align:center;margin-top:auto;padding:1rem .8rem 0;font-size:.8rem}.list-header{z-index:5;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.3rem;padding:.7rem .8rem;display:flex;position:sticky;top:0}.list-title{cursor:text;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;flex:1;margin:0;padding:.2em .3em;font-size:1.1rem;overflow:hidden}.list-title:hover{background:var(--checked-bg)}.lock-badge{color:var(--text-muted);flex-shrink:0;align-items:center;font-size:.95rem;display:inline-flex}.conn-dot{background:#c9a227;border-radius:50%;flex-shrink:0;width:9px;height:9px}.conn-dot.online{background:var(--primary)}.menu-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;min-width:220px;display:flex;position:absolute;top:100%;right:.8rem;overflow:hidden}.menu-panel button{text-align:left;cursor:pointer;background:0 0;border:none;padding:.75em 1em}.menu-panel button:hover{background:var(--checked-bg)}.menu-item-icon{vertical-align:-.2em;width:1.1em;color:var(--text-muted);margin-right:.3em;display:inline-flex}.add-form{border-bottom:1px solid var(--border);padding:.8rem;position:relative}.search-bar{border-bottom:1px solid var(--border);align-items:center;gap:.4rem;padding:.6rem .8rem;display:flex}.search-bar input{flex:1;min-width:0}.add-row{gap:.4rem;display:flex}.add-input{flex:1;min-width:0}#add-recipient{max-width:9.5rem}.add-submit{justify-content:center;align-items:center;padding-inline:.9rem;font-size:1.2rem;line-height:1;display:inline-flex}.recipients{flex:1;padding:.4rem .6rem 2rem}.recipient-section+.recipient-section{margin-top:.6rem}.recipient-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:.4rem;padding:.6rem .4rem .2rem;font-size:.85rem;font-weight:600;display:flex}.person-name,.recipient-name{cursor:text;color:var(--text);text-transform:none;flex:1;font-size:.95rem}.recipient-count{font-variant-numeric:tabular-nums}.recipient-total{font-variant-numeric:tabular-nums;color:var(--primary);font-weight:700}.person-dot,.recipient-dot{background:hsl(var(--person-hue) 65% 50%);border-radius:50%;flex-shrink:0;width:.55em;height:.55em}.recipient-section.has-color .item-list{border-left:2px solid hsl(var(--person-hue) 60% 55% / .5);margin-left:-.5rem;padding-left:.5rem}.drag-handle{cursor:grab;color:var(--text-muted);touch-action:none;background:0 0;border:none;justify-content:center;align-items:center;padding:.3em .1em;font-size:1.1rem;display:inline-flex}.drag-handle-spacer{flex-shrink:0;width:1.6rem}.item-list{flex-direction:column;gap:.3rem;min-height:.5rem;margin:0;padding:0;list-style:none;display:flex}.recipient-empty{color:var(--text-muted);margin:0;padding:.2rem .4rem .6rem;font-size:.85rem;font-style:italic}.item{border-radius:12px;position:relative;overflow:hidden}.item.dragging .item-content{opacity:.5}.item-swipe-bg{background:var(--danger);color:#fff;justify-content:flex-end;align-items:center;padding-right:1.1rem;font-size:1.1rem;display:flex;position:absolute;inset:0}.item-content{background:var(--surface);border:1px solid var(--border);border-left-width:3px;border-left-color:var(--status-color,var(--border));touch-action:pan-y;border-radius:12px;align-items:center;gap:.35rem;padding:.5rem;display:flex;position:relative}.item.checked .item-content{background:var(--checked-bg)}.item.checked .item-name{color:var(--text-muted);text-decoration:line-through}.item-price{background:var(--primary);color:var(--primary-contrast);text-align:center;cursor:text;white-space:nowrap;border-radius:999px;flex-shrink:0;min-width:1.6em;padding:.25em .5em;font-size:.85rem;font-weight:700}.item-price .inline-edit{width:4.5em}.item-price.item-price-empty{background:var(--checked-bg);color:var(--text-muted)}.item-name{cursor:text;overflow-wrap:anywhere;flex:1;min-width:0}.item-status{border:1px solid var(--status-color);color:var(--status-color);background:var(--surface);white-space:nowrap;cursor:pointer;border-radius:999px;flex-shrink:0;padding:.25em .6em;font-size:.72rem;font-weight:600}.item-status:hover{background:var(--checked-bg)}.status-picker{z-index:60;background:var(--surface);border:1px solid var(--border);max-width:220px;box-shadow:var(--shadow);border-radius:10px;flex-wrap:wrap;gap:.35rem;padding:.5rem;display:flex;position:fixed}.status-pill{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.35em .7em;font-size:.8rem}.status-pill:hover{background:var(--checked-bg)}.status-pill[aria-pressed=true]{background:var(--status-color);color:#fff;border-color:#0000}.item-photo{border:1px solid var(--border);background:var(--checked-bg);width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.9rem;display:inline-flex;overflow:hidden}.item-photo-empty{border-style:dashed}.item-photo img{object-fit:cover;width:100%;height:100%;display:block}.item-photo.is-loading{opacity:.5;pointer-events:none}.item-link{border:1px solid var(--border);background:var(--checked-bg);width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.9rem;display:inline-flex}.item-link-empty{border-style:dashed}.item-link-set{color:var(--primary);border-color:var(--primary)}.link-editor{z-index:60;background:var(--surface);border:1px solid var(--border);width:240px;max-width:calc(100vw - 16px);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:.5rem;padding:.6rem;display:flex;position:fixed}.link-editor-view{align-items:center;gap:.4rem;display:flex}.link-editor-open{min-width:0;color:var(--primary);flex:1;align-items:center;gap:.35rem;font-size:.8rem;display:flex}.link-editor-open span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.link-editor-form{gap:.4rem;display:flex}.link-editor-input{flex:1;min-width:0}.link-editor-remove{color:var(--danger);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.8rem}.item-delete{color:var(--text-muted);flex-shrink:0;padding:.3em;font-size:1rem}.item-drag-handle{font-size:1rem}.item-delete:hover{color:var(--danger)}.inline-edit{border-radius:6px;width:100%;padding:.15em .3em}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.centered-message{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.modal-overlay{z-index:50;background:#0a0f0c80;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=560px){.modal-overlay{align-items:center;padding:1rem}}.modal{background:var(--surface);border-radius:18px 18px 0 0;width:100%;max-width:460px;max-height:90vh;padding:1.5rem;position:relative;overflow-y:auto}@media (width>=560px){.modal{border-radius:18px}}.modal h2{margin:0 0 1rem;padding-right:2rem}.modal-close{position:absolute;top:.8rem;right:.8rem}.share-code{letter-spacing:.2em;text-align:center;background:var(--checked-bg);border-radius:12px;margin-bottom:1rem;padding:.4em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:2rem}.qr-wrap{justify-content:center;margin-bottom:1rem;display:flex}.qr-wrap svg{background:#fff;border-radius:10px;width:180px;height:180px;padding:8px}.share-link{text-align:center;color:var(--text-muted);word-break:break-all;margin:0 0 1rem;font-size:.85rem}.share-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.share-io-actions{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.stacked-actions{flex-direction:column;gap:.6rem;display:flex}.accessibility-options{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.accessibility-option{cursor:pointer;border-radius:10px;align-items:flex-start;gap:.7rem;padding:.6em .4em;display:flex}.accessibility-option:hover{background:var(--checked-bg)}.accessibility-option input{width:1.2em;height:1.2em;accent-color:var(--primary);flex-shrink:0;margin-top:.3em}.accessibility-option span{flex-direction:column;display:flex}.accessibility-option small{color:var(--text-muted);font-size:.82rem}.manage-recipient-list{flex-direction:column;gap:.4rem;max-height:40vh;margin:0 0 1rem;padding:0;list-style:none;display:flex;overflow-y:auto}.manage-recipient-list li{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.4rem;padding:.4em .6em;display:flex}.recipient-row{align-items:center;gap:.4rem;display:flex}.color-swatch-toggle{cursor:pointer;border:none;padding:0}.color-palette{flex-wrap:wrap;gap:.35rem;display:flex}.color-swatch{background:hsl(var(--swatch-hue) 65% 50%);cursor:pointer;border:2px solid #0000;border-radius:50%;width:1.3rem;height:1.3rem;padding:0}.color-swatch.selected{border-color:var(--text)}.color-swatch-auto{background:var(--bg);border:1px solid var(--border);width:auto;height:1.3rem;color:var(--text-muted);border-radius:999px;padding:0 .6em;font-size:.75rem}.color-swatch-auto.selected{border-color:var(--text);color:var(--text)}.hint{color:var(--text-muted);margin:0}.toast{background:var(--text);color:var(--bg);opacity:0;z-index:100;text-align:center;border-radius:10px;max-width:90vw;padding:.7em 1.1em;transition:opacity .2s,transform .2s;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%,10px)}.undo-toast{background:var(--text);color:var(--bg);z-index:100;max-width:90vw;box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:.8em;padding:.6em .6em .6em 1.1em;display:flex;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%)}.undo-toast span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.undo-toast button{border:1px solid color-mix(in srgb, var(--bg) 40%, transparent);color:inherit;cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;padding:.4em .8em;font-weight:600}.undo-toast button:hover{background:color-mix(in srgb, var(--bg) 15%, transparent)}.celebration-toast{background:var(--primary);color:var(--primary-contrast);box-shadow:var(--shadow);opacity:0;z-index:100;text-align:center;border-radius:999px;max-width:90vw;padding:.8em 1.3em;font-weight:700;transition:opacity .25s,transform .25s;position:fixed;top:1.2rem;left:50%;transform:translate(-50%,-10px)scale(.9)}.celebration-toast.visible{opacity:1;transform:translate(-50%)scale(1)}.toast.visible{opacity:1;transform:translate(-50%)}.image-lightbox-overlay{cursor:zoom-out;background:#000000d9}.image-lightbox-img{object-fit:contain;border-radius:8px;max-width:100%;max-height:100%}.image-lightbox-close,.image-lightbox-delete{color:#fff;z-index:31;background:#00000080;position:fixed;top:.75rem}.image-lightbox-close{right:.75rem}.image-lightbox-delete{left:.75rem}.image-lightbox-close:hover,.image-lightbox-delete:hover{background:#000000bf}:root[data-large-text]{--a11y-text-scale:1.18;font-size:calc(100% * var(--a11y-text-scale))}:root[data-large-text] .icon-btn{font-size:calc(1.15rem / var(--a11y-text-scale))}:root[data-large-text] .home-toolbar .icon-btn{font-size:calc(1.2rem / var(--a11y-text-scale))}:root[data-large-text] .list-header{gap:calc(.3rem / var(--a11y-text-scale));padding:calc(.7rem / var(--a11y-text-scale)) calc(.8rem / var(--a11y-text-scale))}:root[data-large-text] .add-form{padding:calc(.8rem / var(--a11y-text-scale))}:root[data-large-text] .add-row{gap:calc(.4rem / var(--a11y-text-scale))}:root[data-large-text] #add-recipient{max-width:calc(9.5rem / var(--a11y-text-scale))}:root[data-large-text] .add-submit{font-size:calc(1.2rem / var(--a11y-text-scale));padding-inline:calc(.9rem / var(--a11y-text-scale))}:root[data-large-text] .search-bar{gap:calc(.4rem / var(--a11y-text-scale));padding:calc(.6rem / var(--a11y-text-scale)) calc(.8rem / var(--a11y-text-scale))}:root[data-large-text] .item-content{gap:calc(.35rem / var(--a11y-text-scale));padding:calc(.5rem / var(--a11y-text-scale))}:root[data-large-text] .item-drag-handle{font-size:calc(1rem / var(--a11y-text-scale))}:root[data-large-text] .item-status{font-size:calc(.72rem / var(--a11y-text-scale))}:root[data-large-text] .item-price{font-size:calc(.85rem / var(--a11y-text-scale))}:root[data-large-text] .item-photo,:root[data-large-text] .item-link{width:calc(2rem / var(--a11y-text-scale));height:calc(2rem / var(--a11y-text-scale));font-size:calc(.9rem / var(--a11y-text-scale))}:root[data-large-text] .item-delete{font-size:calc(1rem / var(--a11y-text-scale))}:root[data-high-contrast]{--text-muted:var(--text);--border:var(--text)}:root[data-reduce-motion] *,:root[data-reduce-motion] :before,:root[data-reduce-motion] :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
