:root{--bg: #f6f7f5;--surface: #ffffff;--surface-2: #eef1ee;--shop-row: #ecf6e9;--shop-row-border: #c7e3bd;--text: #16241c;--text-dim: #5b6b61;--border: #d9e0da;--brand: #14532d;--brand-text: #ffffff;--accent: #4d7c0f;--danger: #b42318;--radius: 12px;--radius-card: 18px;--lift: 0 1px 2px rgb(22 36 28 / .06), 0 8px 20px -10px rgb(22 36 28 / .24);--tap: 48px;--page: var(--bg);--wash: var(--brand);--radius-hero: var(--radius-card) var(--radius-card) 36px 36px;--arch: 22px;--tab-on: #a3e635;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0e1512;--surface: #16211b;--surface-2: #1e2c24;--shop-row: #17281a;--shop-row-border: #2f4f34;--text: #e8efe9;--text-dim: #9db0a4;--border: #2b3a31;--brand: #1f6b3c;--brand-text: #ffffff;--accent: #a3e635;--danger: #f2857a;--lift: 0 1px 2px rgb(0 0 0 / .4), 0 10px 24px -14px rgb(0 0 0 / .7)}}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;height:100dvh}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4;-webkit-tap-highlight-color:transparent}#root{height:100%}.app{display:flex;flex-direction:column;height:100dvh;max-width:640px;margin:0 auto;background:var(--page)}.topbar{display:flex;flex-shrink:0;align-items:center;justify-content:center;gap:10px;padding:calc(env(safe-area-inset-top) + 12px) 16px 20px;background:var(--brand-deep, var(--brand));color:var(--brand-text);border-radius:0 0 50% 50% / 0 0 var(--arch) var(--arch);position:relative;z-index:2}.topbar+.shopbar,.topbar+.banner,.topbar+.arrival{margin-top:calc(-1 * var(--arch));border-top:var(--arch) solid transparent}.topbar+.content{margin-top:calc(-1 * var(--arch));--risen: var(--arch)}.topbar+.content>.screen{padding-top:calc(12px + var(--arch))}.topbar h1{margin:0;font-size:1.15rem;letter-spacing:.01em}.topbar-sub{font-size:.85rem;opacity:.85;margin-left:auto}.content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:var(--arch);--risen: 0px;background:linear-gradient(to bottom,color-mix(in srgb,var(--wash) 15%,var(--page)) 0,color-mix(in srgb,var(--wash) 4%,var(--page)) 96px,var(--page) 220px) no-repeat}.screen{padding:12px 12px 24px;display:flex;flex-direction:column;gap:12px}.tabbar{display:flex;flex-shrink:0;background:var(--brand-deep, var(--brand));color:var(--brand-text);border-radius:50% 50% 0 0 / var(--arch) var(--arch) 0 0;margin-top:calc(-1 * var(--arch));padding-top:var(--arch);padding-bottom:env(safe-area-inset-bottom);position:relative;z-index:2}.app>.toast{margin-bottom:var(--arch)}.tab{flex:1;min-height:var(--tap);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;border:0;background:none;color:color-mix(in srgb,var(--brand-text) 68%,var(--brand-deep, var(--brand)));font:inherit;font-size:.72rem;cursor:pointer}.tab--active{color:var(--tab-on);font-weight:600}.tab-icon{display:grid;place-items:center;height:22px;line-height:1}.add-bar{display:flex;gap:8px}.add-bar input,.search,.row-panel input{flex:1;min-height:var(--tap);width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.add-bar input:focus,.search:focus,.row-panel input:focus,.aisle-input:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{min-height:var(--tap);padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:500;cursor:pointer}.btn:disabled{opacity:.45;cursor:default}.btn--primary:disabled{opacity:.7}.btn--primary{background:var(--brand-deep, var(--brand));border-color:var(--brand-deep, var(--brand));color:var(--brand-text)}.btn--onbrand{background:#fff;border-color:#fff;color:var(--brand-deep, var(--brand));font-weight:650}.btn--danger{color:var(--danger);border-color:var(--danger);background:transparent}.suggestions{list-style:none;margin:-4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.suggestion{min-height:38px;padding:6px 12px;border-radius:999px;border:1px dashed var(--border);background:var(--surface-2);color:var(--text-dim);font:inherit;font-size:.9rem;cursor:pointer}.progress{margin:0;color:var(--text-dim);font-size:.85rem}.aisle-group{display:flex;flex-direction:column;gap:6px}.aisle-heading{margin:8px 0 0;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}.rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.row{background:var(--surface);border-radius:var(--radius-card);overflow:hidden}.row--active{outline:2px solid var(--accent);outline-offset:-2px}.row-main{display:flex;align-items:center;gap:6px;padding:4px 6px 4px 4px}.tick,.add-toggle{flex:0 0 auto;width:42px;height:42px;border-radius:10px;border:2px solid var(--border);background:transparent;color:var(--accent);font-size:1.25rem;line-height:1;cursor:pointer}.add-toggle{color:var(--text-dim)}.tick[aria-pressed=true],.add-toggle--on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.row-name{flex:1;min-height:42px;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:4px 2px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.row-title{font-size:1rem}.row-qty{font-size:.78rem;color:var(--text-dim)}.row-qty--hint{opacity:.7;font-style:italic}.row--checked .row-title{text-decoration:line-through}.row--checked{opacity:.55}.row-buy{flex:0 0 auto;display:grid;place-items:center;min-width:25px;height:28px;padding:0 5px;border-radius:var(--buy-radius, 999px);background:var(--buy-bg, var(--shop-row));color:var(--buy-ink, var(--accent));font-size:.72rem;font-weight:700;letter-spacing:0;text-decoration:none;line-height:1}[data-buy=sixty60]{--buy-bg: #16293a;--buy-ink: #23c9b6;--buy-radius: 9px}[data-buy=woolworths]{--buy-bg: #111111;--buy-ink: #ffffff;--buy-radius: 3px}[data-buy=takealot]{--buy-bg: #0090d1;--buy-ink: #ffffff;--buy-radius: 9px}[data-buy=builders]{--buy-bg: #e8541f;--buy-ink: #ffffff;--buy-radius: 2px}[data-buy=pnp]{--buy-bg: #00539f;--buy-ink: #ffffff}[data-buy=woolworthsau]{--buy-bg: #178841;--buy-ink: #ffffff;--buy-radius: 9px}@media(prefers-color-scheme:dark){[data-buy=woolworths]{--buy-bg: #f2f2f2;--buy-ink: #111111}}.row-buy:hover,.row-buy:focus-visible{filter:brightness(1.18)}.row--checked .row-buy{opacity:.35}.row-more{flex:0 0 auto;width:30px;height:42px;border:0;background:none;color:var(--text-dim);font-size:1.2rem;cursor:pointer}.aisle-chip{flex:0 0 auto;min-width:44px;min-height:34px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.aisle-chip--unset{font-weight:400;color:var(--text-dim);border-style:dashed}.aisle-input{flex:0 0 auto;width:88px;min-height:34px;padding:4px 10px;border-radius:8px;border:1px solid var(--accent);background:var(--surface);color:var(--text);font:inherit;font-size:.9rem}.row-panel{display:flex;flex-direction:column;gap:10px;padding:10px 12px 14px;border-top:1px solid var(--border);background:var(--surface-2)}.row-panel label,.aisle-grid label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--text-dim)}.aisle-grid{display:flex;flex-direction:column;gap:8px;margin:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.aisle-grid legend{padding:0 6px;font-size:.78rem;font-weight:600;color:var(--text-dim)}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions .btn{flex:1}.empty{text-align:center;padding:32px 16px;color:var(--text-dim)}.empty h2{margin:0 0 8px;font-size:1.05rem;color:var(--text)}.empty p{margin:0 0 16px;font-size:.9rem}.card{background:linear-gradient(to bottom,color-mix(in srgb,var(--wash) 5%,var(--surface)) 0%,var(--surface) 58%);border-radius:var(--radius-card);box-shadow:var(--lift);padding:16px;display:flex;flex-direction:column;gap:10px}.card h2{margin:0;font-size:1rem}.hint{margin:0;font-size:.85rem;color:var(--text-dim)}.toast{margin:0;padding:10px 14px;border-radius:var(--radius);background:var(--accent);color:var(--bg);font-size:.88rem}.card--open{border-color:var(--accent)}.saved-head{display:flex;align-items:center;gap:6px}.saved-name{flex:1;min-height:44px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.field{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--text-dim)}.field select,.field input,.row-panel select{min-height:var(--tap);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;width:100%}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.pick-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pick-rows li{display:flex;align-items:center;gap:4px}.pick{flex:1;min-height:44px;display:flex;align-items:center;gap:10px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-dim);font:inherit;text-align:left;cursor:pointer}.pick--on{color:var(--text);border-color:var(--accent)}.pick-box{flex:0 0 auto;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:7px;border:2px solid var(--border);font-size:.95rem;line-height:1}.pick--on .pick-box{background:var(--accent);border-color:var(--accent);color:var(--bg)}.pick-drop{flex:0 0 auto;width:36px;height:44px;border:0;background:none;color:var(--text-dim);font-size:1.2rem;cursor:pointer}.code{margin:0;padding:12px;border:1px dashed var(--accent);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,monospace;font-size:1.25rem;font-weight:600;letter-spacing:.12em;text-align:center;-webkit-user-select:all;user-select:all}.toast--bad{background:var(--danger);color:#fff}.banner{margin:0;padding:8px 16px;background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-dim);font-size:.82rem;text-align:center}.banner--install{display:flex;align-items:center;gap:10px;text-align:left}.banner-said{flex:1;min-width:0}.banner--install .link-button{flex:0 0 auto;font-size:inherit;font-weight:600}.banner-no{flex:0 0 auto;width:30px;height:30px;margin:-6px -6px -6px 0;border:0;background:none;color:var(--text-dim);font-size:19px;line-height:1;cursor:pointer}.shopbar{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--tap);padding:10px 16px;border:0;border-bottom:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.shopbar-icon{font-size:1.1rem;line-height:1}.shopbar-text{flex:1;min-width:0;color:var(--text-dim);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopbar-text strong{color:var(--text);font-weight:600}.shopbar-change{flex:0 0 auto;color:var(--accent);font-size:.85rem;font-weight:600}.sheet{width:100%;max-width:640px;max-height:80dvh;margin:auto auto 0;padding:0;border:0;background:transparent}.sheet::backdrop{background:#00000080}.sheet-inner{display:flex;flex-direction:column;gap:10px;padding:16px 12px calc(env(safe-area-inset-bottom) + 16px);border-radius:16px 16px 0 0;background:var(--surface);color:var(--text)}.sheet-title{margin:0 4px;font-size:1rem}.sheet-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.sheet-option{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.sheet-option--on{border-color:var(--accent);font-weight:600}.sheet-tick{flex:0 0 auto;width:22px;color:var(--accent);font-size:1.1rem;line-height:1}.destination{margin:-6px 0 0;color:var(--text-dim);font-size:.8rem}.row-name--static{cursor:default}.btn--small{min-height:38px;padding:6px 12px;font-size:.85rem}.elsewhere-toggle{display:flex;align-items:center;gap:8px;min-height:var(--tap);padding:0;border:0;background:none;color:var(--text-dim);font:inherit;font-size:.85rem;text-align:left;cursor:pointer}.shop-checklist{margin:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.shop-checklist legend{padding:0 6px;font-size:.78rem;font-weight:600;color:var(--text-dim)}.shop-checklist ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.shop-checklist li{display:flex;align-items:center;gap:6px}.shop-checklist .pick{flex:1;min-width:0}.pick--wide{width:100%}.aisle-inline{flex:0 0 auto;width:84px;min-height:44px;padding:4px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:.9rem}.headline{margin:0;font-size:1.05rem;font-weight:600}.shop-card{display:flex;flex-direction:column;gap:4px;width:100%;padding:14px 16px;border:0;border-left:4px solid var(--edge, var(--accent));border-radius:var(--radius-card);background:color-mix(in srgb,var(--edge, transparent) 7%,var(--surface));box-shadow:var(--lift);color:var(--text);font:inherit;text-align:left;cursor:pointer}@media(prefers-color-scheme:dark){.shop-card,.row--shopmark{border-left-color:var(--edge-dark, var(--edge, var(--accent)))}.shop-card{background:color-mix(in srgb,var(--edge-wash, var(--edge, transparent)) 14%,var(--surface))}.shop-card--active{outline-color:var(--edge-dark, var(--edge, var(--accent)))}}.paste-box{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-size:.95rem;resize:vertical}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:34px;height:34px;padding:0;border:0;border-radius:999px;display:grid;place-items:center;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:inset 0 0 0 1px #0000001f}.swatch--none{background:var(--surface-2);color:var(--text-dim)}.swatch--on{outline:2px solid var(--text);outline-offset:2px}.row--shopmark{border-left:4px solid var(--edge, var(--border));background:color-mix(in srgb,var(--edge, transparent) 5%,var(--surface))}@media(prefers-color-scheme:dark){.row--shopmark{background:color-mix(in srgb,var(--edge-wash, var(--edge, transparent)) 11%,var(--surface))}}.shop-card--active{outline:2px solid var(--edge, var(--accent));outline-offset:-2px}.shop-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.shop-card-name{font-size:1.05rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shop-card-count{flex:0 0 auto;color:var(--accent);font-size:.85rem;font-weight:600}.shop-card-names,.shop-card-progress{color:var(--text-dim);font-size:.85rem}.shop-card-progress{font-size:.78rem}.quiet-shops{margin-top:4px}.quiet-shops h2{margin:0 0 8px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.tabbar{font-size:.68rem}.tab{padding:8px 2px;font-size:.68rem}.shop-card--loose{border-left-color:var(--border)}.code--url{font-size:.95rem;letter-spacing:0;font-weight:500;overflow-wrap:anywhere}.btn--quiet{border-style:dashed;color:var(--text-dim);font-weight:400}.publisher{display:flex;flex-direction:column;gap:10px;padding-top:10px;border-top:1px dashed var(--border)}.changes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.changes li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.change-item{font-weight:600}.change-move{grid-row:1 / span 2;align-self:center;color:var(--accent);font-weight:600;white-space:nowrap}.change-shop{color:var(--text-dim);font-size:.8rem}.arrival{display:flex;flex-direction:column;gap:8px;padding:10px 16px;background:var(--surface-2);border-bottom:1px solid var(--border)}.arrival-text{margin:0;color:var(--text-dim);font-size:.82rem}.arrival-actions{display:flex;flex-wrap:wrap;gap:8px}.toast--tap{display:block;width:calc(100% - 24px);margin:0 12px 12px;border:0;font:inherit;font-size:.88rem;text-align:left;cursor:pointer}.aisle-chip--guess{border-style:dashed;border-color:var(--text-dim);background:transparent;color:var(--text-dim);font-weight:500}.tiles{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tile{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:6px;min-height:96px;padding:10px 12px;border-radius:var(--radius-card);background:var(--surface)}.tile-foot{display:flex;align-items:center;justify-content:space-between;gap:6px}.tile--on{border-color:var(--accent);background:var(--surface-2)}.tile--landed{outline:2px solid var(--accent);outline-offset:2px}.tile-name{font-weight:600;line-height:1.25;overflow-wrap:anywhere;color:var(--text)}.tile-name--tap{display:block;width:100%;padding:0;border:0;background:none;font:inherit;font-weight:600;text-align:left;cursor:pointer}.tile-cat{position:relative;display:flex;align-items:center;gap:4px;min-width:0;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-dim);font-size:12px;cursor:pointer}.tile--on .tile-cat{background:var(--surface)}.tile-cat-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-cat select,.new-item-cat select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.tile-plus{flex:none;border:0;cursor:pointer;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--brand);color:var(--brand-text);font-size:20px;line-height:1}.stepper{flex:none;display:flex;align-items:center;gap:2px}.stepper>span{min-width:20px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}.stepper button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);font-size:19px;line-height:1;cursor:pointer}.chips{position:sticky;top:var(--risen, 0px);z-index:2;display:flex;gap:6px;overflow-x:auto;padding:8px 0;background:var(--bg);scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;display:flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;white-space:nowrap;cursor:pointer}.chip-icon{display:inline-grid;place-items:center;font-size:16px;line-height:1}.chip--on{background:var(--brand);border-color:var(--brand);color:var(--brand-text);font-weight:600}.btn--wide{width:100%}a.btn{display:flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}.order-list{list-style:none;counter-reset:step;margin:8px 0;padding:0}.order-list li{counter-increment:step;display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.order-name{flex:1}.order-name:before{content:counter(step) ". ";color:var(--text-dim);font-variant-numeric:tabular-nums}.order-moves{flex:none;display:flex;gap:4px}.order-moves button{width:40px;height:40px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:16px;cursor:pointer}.order-moves button:disabled{opacity:.35;cursor:default}.new-item{display:flex;align-items:stretch;gap:8px;margin:8px 0}.new-item-cat{position:relative;display:flex;flex:1;align-items:center;gap:6px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer}.new-item-cat-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.new-item-add{flex:none;padding-left:22px;padding-right:22px}.list-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 12px}.list-count{margin:0;font-size:17px}.list-count strong{font-size:30px;line-height:1;margin-right:4px;color:var(--brand)}@media(prefers-color-scheme:dark){.list-count strong{color:var(--accent)}}.list-done{margin:0;color:var(--text-dim);font-size:14px}.list-head .btn{margin-left:auto}.stepper--row{margin-right:4px}.aisle-heading{display:flex;align-items:center;gap:6px}.tab-icon{position:relative}.tab-badge{position:absolute;top:-6px;left:14px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.tile{position:relative}.tile-drop{position:absolute;top:2px;left:2px;z-index:1;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--text-dim);font-size:17px;line-height:1;cursor:pointer}.tile-drop:hover,.tile-drop:focus-visible{background:var(--surface-2);color:var(--danger)}.tile--droppable .tile-name{padding-left:26px}.learned{margin:12px 0;padding:12px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface-2)}.learned-head{margin:0 0 4px;font-weight:600}.order-list--preview{max-height:320px;overflow-y:auto}.order-moved .order-name{font-weight:700}.order-tag{flex:none;padding:2px 8px;border-radius:999px;background:var(--brand);color:var(--brand-text);font-size:11px;font-weight:700}.shop-picker{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}.shop-picker>li{max-width:100%;min-width:0}.shop-chip{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);max-width:100%;padding:10px 16px 10px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}.shop-chip:hover,.shop-chip:focus-visible{border-color:var(--accent)}.shop-chip-plus{flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);color:var(--accent);font-size:1rem;line-height:1}.shop-chip-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-tag{align-self:flex-start;margin-top:2px;padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-dim);font-size:.72rem;font-weight:600}.about-heading{margin:14px 0 4px;font-size:.95rem;font-weight:700;color:var(--text)}.back-link{align-self:flex-start;margin-bottom:4px;padding:8px 0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.gift-row{display:flex;flex-direction:column;gap:4px;padding:12px}.gift-note{color:var(--text-dim);font-size:.85rem}.gift-link{align-self:flex-start;color:var(--accent);font-size:.85rem;font-weight:600;word-break:break-all}.list-title{display:block;margin:4px 0 12px}.list-title-input{width:100%;padding:4px 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--text);font:inherit;font-size:1.5rem;font-weight:700;line-height:1.2}.list-title-input:hover{border-bottom-color:var(--border)}.list-title-input:focus{outline:none;border-bottom-color:var(--accent)}.list-title-hint{display:block;margin-top:2px;color:var(--text-dim);font-size:.75rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:root{--gift-brand: #9f1239;--gift-accent: #be123c;--gift-tint: #fdf2f4;--gift-row: #fdecef;--gift-row-border: #f3c3ce}@media(prefers-color-scheme:dark){:root{--gift-brand: #be123c;--gift-accent: #fb7185;--gift-tint: #2b141c;--gift-row: #331722;--gift-row-border: #5e2637}}.theme-gift{--brand: var(--gift-brand);--accent: var(--gift-accent);--surface-2: var(--gift-tint);--tab-on: #fcd34d}.gift-card{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:15px 16px;border:0;border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--lift);color:var(--text);font:inherit;text-align:left;cursor:pointer}.gift-card:hover,.gift-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gift-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.gift-card-title{font-size:1.05rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gift-card-meta{color:var(--text-dim);font-size:.85rem}.gift-card-go{flex:none;color:var(--accent);font-size:1.3rem;line-height:1}.rows li+li .gift-card{margin-top:8px}.gift-claim{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.gift-taken{padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--text-dim);font-size:.8rem;font-weight:600}.gift-taken--mine{background:var(--accent);color:#fff}.gift-row--taken .row-title{text-decoration:line-through;text-decoration-thickness:1px;color:var(--text-dim)}.quiet-offer{margin:16px 0 4px;color:var(--text-dim);font-size:.82rem;line-height:1.5}.quiet-offer a{color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:3px}@media(prefers-color-scheme:dark){.quiet-offer a{color:var(--accent)}}.link-button{padding:0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.link-button--quiet{color:var(--text-dim);font-weight:400}.kept-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 12px}.kept-link{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;flex:1;min-width:0;min-height:var(--tap);padding:0;border:0;background:none;color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}.kept-link:hover span:first-child,.kept-link:focus-visible span:first-child{text-decoration:underline}.kept-meta{color:var(--text-dim);font-size:.82rem;font-weight:400;min-height:1.15em}.row--gift{background:var(--gift-row);border-color:var(--gift-row-border)}.row--gift:has(.gift-row--taken){background:var(--surface);border-color:var(--border)}.row-link{display:block;padding:0 10px 10px 6px;margin-top:-4px;color:var(--gift-brand);font-size:.82rem;font-weight:600;word-break:break-all}@media(prefers-color-scheme:dark){.row-link{color:var(--gift-accent)}}.row--shop{background:var(--shop-row);border-color:var(--shop-row-border)}.row--shop.row--checked{background:var(--surface);border-color:var(--border)}.tile-edit{display:flex;align-items:center;gap:6px}.tile-bin{flex:none;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--danger);border-radius:9px;background:var(--surface);color:var(--danger);cursor:pointer}.tile-toggles{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tile-toggle{padding:3px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-dim);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer}.tile-toggle--on{border-color:var(--accent);background:var(--accent);color:var(--brand-text)}.tile-rename{width:100%;min-width:0;padding:2px 6px;border:1px solid var(--accent);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-weight:600}.tile-name,.tile-name--tap{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.aisle-group{gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.aisle-heading{margin:0;padding:5px 12px;border-bottom:1px solid var(--border)}.aisle-name{flex:1;min-width:0}.aisle-tally{flex:0 0 auto;min-width:22px;text-align:right;color:var(--text-dim);font-variant-numeric:tabular-nums;letter-spacing:0}.aisle-group .rows{gap:0}.aisle-group .row{border:0;border-radius:0}.aisle-group .row+.row{border-top:1px solid var(--border)}.aisle-group .row--shop.row--checked{background:var(--surface)}.rows--banded{gap:6px}.meter{height:6px;margin:0 0 4px;border-radius:999px;background:var(--surface-2);overflow:hidden}.meter-fill{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .2s ease}.list-head{flex-wrap:nowrap;margin:4px 0 8px}.list-count{display:flex;align-items:baseline;gap:6px;min-width:0;line-height:1.2}.list-count-text{font-size:.95rem}.list-done{margin:0;color:var(--text-dim);font-size:.85rem}.list-head .btn{flex:0 0 auto;white-space:nowrap}.aisle-heading{position:sticky;top:var(--risen, 0px);z-index:2;background:hsl(var(--cat, 220) 55% 95%);color:hsl(var(--cat, 220) 45% 28%)}.aisle-tally{color:hsl(var(--cat, 220) 30% 42%)}@media(prefers-color-scheme:dark){.aisle-heading{background:hsl(var(--cat, 220) 30% 16%);color:hsl(var(--cat, 220) 55% 78%)}.aisle-tally{color:hsl(var(--cat, 220) 25% 60%)}}.aisle-group{overflow:visible}.aisle-group .rows{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);overflow:hidden}.hero{position:relative;overflow:hidden;padding:16px;border-radius:var(--radius-hero);background:linear-gradient(155deg,var(--brand),color-mix(in srgb,var(--brand) 72%,#000));color:#fff}.hero-where{margin:0;font-size:.85rem;opacity:.75}.hero-count{display:flex;align-items:baseline;gap:10px;margin:2px 0 0}.hero-count strong{font-size:3.2rem;font-weight:700;line-height:1;letter-spacing:-.02em}.hero-count span{font-size:1rem;opacity:.9}.hero-line{margin:6px 0 0;font-size:1rem;opacity:.85}.meter--hero{margin:14px 0 0;background:#ffffff38}.meter--hero .meter-fill{background:#fff}.hero-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:.85rem;opacity:.85}.btn--ghost{min-height:38px;padding:8px 14px;border:1px solid rgb(255 255 255 / .55);background:transparent;color:#fff;font-weight:600}.btn--ghost:hover{background:#ffffff1f}.meter--slim{height:4px;margin-top:6px}.screen>.hero+.shop-card{margin-top:2px}.gift-card-head{display:flex;align-items:center;gap:8px}.gift-card-names{color:var(--text-dim);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{flex:0 0 auto;padding:2px 8px;border-radius:999px;background:var(--gift-row);color:var(--gift-brand);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}@media(prefers-color-scheme:dark){.pill{background:var(--gift-row);color:var(--gift-accent)}}.link-button--danger{align-self:center;margin:4px 0 8px;color:var(--danger, #b91c1c);font-weight:400}.sheet-option-name{flex:1;min-width:0;text-align:left}.sheet-count{flex:0 0 auto;padding:2px 10px;border-radius:999px;background:var(--surface-2);color:var(--accent);font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums}.sheet-option--waiting{background:var(--shop-row);border-color:var(--shop-row-border)}.sheet-count{padding:3px 10px;color:var(--brand);white-space:nowrap}.sheet-option--waiting .sheet-count{background:var(--surface)}.shopbar{padding:8px 14px;background:var(--shop-row);border-bottom:1px solid var(--shop-row-border)}.shopbar-text{display:flex;flex-direction:column;gap:0;line-height:1.2}.shopbar-label{color:var(--text-dim);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.shopbar-text strong{font-size:1.05rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopbar-change{padding:6px 14px;border:1px solid var(--shop-row-border);border-radius:999px;background:var(--surface)}.row-title{font-size:1.02rem;font-weight:600;letter-spacing:-.005em}.row--checked .row-title{font-weight:400}.hero-actions{display:flex;align-items:center;gap:14px}.hero-link{padding:4px 2px;border:0;background:none;color:inherit;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;opacity:.85;cursor:pointer}.hero-link:hover{opacity:1}.card--lit{animation:card-lit 1.8s ease-out}@keyframes card-lit{0%{box-shadow:inset 0 0 0 2px var(--accent);background:var(--surface-2)}70%{box-shadow:inset 0 0 0 2px var(--accent);background:var(--surface-2)}to{box-shadow:inset 0 0 0 2px transparent;background:var(--surface)}}@media(prefers-reduced-motion:reduce){.card--lit{animation:none;box-shadow:inset 0 0 0 2px var(--accent)}}.have-already{margin-top:2px}.shop-go{flex:0 0 auto;min-height:34px;padding:5px 10px;font-size:.78rem;white-space:nowrap}.hint--aside{padding-top:10px;border-top:1px solid var(--border)}.shop-chip--more{border-style:dashed;color:var(--text-dim)}.field textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;resize:vertical}.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.share-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 12px}.share-split--one{grid-template-columns:1fr}.share-half{display:flex;flex-direction:column;gap:4px;padding:16px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.share-half--shop{background:var(--shop-row);border-color:var(--shop-row-border)}.share-half--gift{background:var(--gift-row);border-color:var(--gift-row-border)}.share-icon{font-size:1.5rem;line-height:1}.share-title{font-size:1rem;font-weight:700}.share-note{color:var(--text-dim);font-size:.8rem;line-height:1.35}.share-go{margin-top:6px;font-size:.85rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.share-half--shop .share-go{color:var(--brand)}.share-half--gift .share-go{color:var(--gift-brand)}@media(prefers-color-scheme:dark){.share-half--shop .share-go{color:var(--accent)}.share-half--gift .share-go{color:var(--gift-accent)}}.share-card{display:block;width:100%;height:auto;border-radius:10px;border:1px solid rgb(0 0 0 / .08)}.share-half{gap:8px;padding:12px}.status{display:flex;align-items:center;gap:9px;margin:0 0 4px;color:var(--text-dim);font-size:.9rem}.status-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:currentColor}.status--on{color:var(--accent)}.status--wait{color:var(--text-dim)}.status--bad{color:var(--danger)}.code--quiet{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text-dim);font-size:1rem;font-weight:500;letter-spacing:.1em}.share-half--off{background:var(--surface-2);border-color:var(--border);opacity:.65}.share-state{margin-top:4px;font-size:.85rem;font-weight:700}.share-half--shop .share-state{color:var(--brand)}.share-half--gift .share-state{color:var(--gift-brand)}.share-half--off .share-state{color:var(--text-dim)}.version{margin:0 0 10px;color:var(--text-dim);font-size:.85rem;font-variant-numeric:tabular-nums}.about-more>summary{padding:8px 0;color:var(--accent);font-weight:600;cursor:pointer}.about-more>summary::marker{color:var(--text-dim)}.about-more[open]>summary{margin-bottom:4px}@media(prefers-color-scheme:dark){.share-half--gift .share-state{color:var(--gift-accent)}}.hero--gift{position:relative;overflow:hidden;min-height:132px;border-radius:var(--radius-hero)}.hero-art{position:absolute;top:-6px;right:-22px;width:168px;height:148px;opacity:.5;pointer-events:none}.hero-said{position:relative;max-width:56%}.hero-big{margin:2px 0 0;font-size:1.7rem;font-weight:700;line-height:1.15;letter-spacing:-.01em}.act-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.act-words{flex:1;min-width:0}.act-words h2{margin:0 0 2px}.act-words .hint{margin:0}.act-badge{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--gift-brand);border:1px solid var(--gift-brand);color:#fff}@media(prefers-color-scheme:dark){.act-badge{color:#fff}}.act-badge--quiet{background:var(--gift-row);border-color:var(--gift-row-border);color:var(--gift-brand)}@media(prefers-color-scheme:dark){.act-badge--quiet{color:var(--gift-accent)}}.act--primary{background:var(--gift-row);border-color:var(--gift-row-border)}.act--primary h2{color:var(--gift-brand)}@media(prefers-color-scheme:dark){.act--primary h2{color:var(--gift-accent)}}.act-fold{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);padding:8px 12px 8px 4px;border:0;border-radius:var(--radius-card);background:transparent;color:var(--gift-brand);font:inherit;font-weight:600;text-align:left;cursor:pointer}.act-fold:hover,.act-fold:focus-visible{background:var(--surface)}@media(prefers-color-scheme:dark){.act-fold{color:var(--gift-accent)}.act-fold:hover,.act-fold:focus-visible{border-color:var(--gift-accent)}}.act-fold-label{flex:1;min-width:0}.act-badge--small{width:32px;height:32px}.gift-card-badge{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gift-row);color:var(--gift-brand)}@media(prefers-color-scheme:dark){.gift-card-badge{color:var(--gift-accent)}}.gift-card{border-left-width:1px;border-left-color:var(--border)}.how-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.how-step{display:flex;align-items:flex-start;gap:12px}.how-art{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--gift-row);border:1px solid var(--gift-row-border);color:var(--gift-brand)}@media(prefers-color-scheme:dark){.how-art{color:var(--gift-accent)}}.how-words{display:flex;flex-direction:column;gap:2px;min-width:0}.how-title{display:flex;align-items:center;gap:8px;font-weight:700}.how-num{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--gift-brand);color:#fff;font-size:.7rem;font-weight:700}.how-body{color:var(--text-dim);font-size:.88rem;line-height:1.4}.site{max-width:54rem;margin:0 auto;padding:0 20px 48px}.site-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0 8px}.site-mark{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--brand)}.site-nav{display:flex;gap:18px;font-size:.95rem}.site-hero{padding:28px 0 30px}.site-hero h1{margin:0 0 12px;font-size:clamp(2rem,7vw,3rem);line-height:1.1;letter-spacing:-.03em}.site-lede{margin:0;max-width:34rem;color:var(--text-dim);font-size:1.1rem;line-height:1.55}.site-phone{max-width:20rem;margin:26px auto 30px;padding:10px 10px 13px;border-radius:36px;background:#1b211d;box-shadow:0 22px 46px #0f191247,inset 0 0 0 1px #ffffff12}.site-phone-ear{display:block;width:52px;height:5px;margin:2px auto 9px;border-radius:999px;background:#ffffff38}.site-show{display:grid;border-radius:26px;overflow:hidden}.site-shot{grid-area:1 / 1;padding:16px 18px 18px;color:#fff;animation:siteShot 13.5s infinite}.site-shot--shop{background:linear-gradient(158deg,#1d5c33,#14532d)}.site-shot--gift{background:linear-gradient(158deg,#ab2a4d,#9f1239)}.site-shot--recipe{background:linear-gradient(158deg,#89a07f,#799171)}.site-shot--b{animation-delay:-9s}.site-shot--c{animation-delay:-4.5s}@keyframes siteShot{0%,28%{opacity:1}33%,to{opacity:0}}.site-shot-top{margin:0 0 10px;font-weight:700;font-size:1.05rem;letter-spacing:-.02em}.site-shot-sep{margin:12px 0 4px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.7}.site-shot-row{margin:0;padding:7px 0;border-bottom:1px solid rgb(255 255 255 / .16);font-size:.95rem}.site-shot-row--off{opacity:.55;text-decoration:line-through}.site-shot-foot{margin:14px 0 0;font-size:.82rem;opacity:.82}@media(prefers-reduced-motion:reduce){.site-shot{animation:none;opacity:0}.site-shot--shop{opacity:1}}.site-pair{display:grid;gap:16px}@media(min-width:780px){.site-pair{grid-template-columns:1fr 1fr}}@media(min-width:1120px){.site-pair{grid-template-columns:1fr 1fr 1fr}}.site-card{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:22px;border-radius:20px 20px 44px 44px;color:#fff}.site-card--shop{background:linear-gradient(155deg,var(--brand),color-mix(in srgb,var(--brand) 70%,#000))}.site-card--gift{background:linear-gradient(155deg,var(--gift-brand),color-mix(in srgb,var(--gift-brand) 70%,#000))}.site-card--recipe{background:linear-gradient(155deg,var(--recipe-brand, #799171),color-mix(in srgb,var(--recipe-brand, #799171) 70%,#000))}.site-card .hero-art{top:-16px;right:-44px;width:224px;height:198px;opacity:.5}.site-card--gift .hero-art{color:#f6d489;opacity:.54}.site-card--recipe .hero-art{color:#e2ecd9;opacity:.5}.site-card-said{position:relative;max-width:72%}@media(min-width:780px){.site-card-said{max-width:100%}.site-card .hero-art{top:-32px;right:-58px}}.site-card h2{margin:0 0 8px;font-size:1.5rem;letter-spacing:-.02em}.site-card p{margin:0;font-size:.98rem;line-height:1.55;opacity:.92}.site-actions{display:flex;align-items:center;gap:16px;margin-top:18px!important;flex-wrap:wrap}.site-go{padding:11px 20px;border-radius:999px;background:#fff;font-weight:700;text-decoration:none;white-space:nowrap}.site-card--shop .site-go{color:var(--brand)}.site-card--gift .site-go{color:var(--gift-brand)}.site-card--recipe .site-go{color:#4f6b48}.site-more{color:#fff;font-size:.92rem;text-decoration:underline;text-underline-offset:3px;opacity:.85;white-space:nowrap}.site-why{display:grid;gap:22px;margin:40px 0 8px}@media(min-width:780px){.site-why{grid-template-columns:repeat(3,1fr);gap:28px}}.site-why-art{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);color:var(--brand)}.site-why-one h3{margin:0 0 6px;font-size:1.05rem}.site-why-one p{margin:0;color:var(--text-dim);font-size:.94rem;line-height:1.55}.site-foot{margin-top:44px;padding-top:20px;border-top:1px solid var(--border);color:var(--text-dim);font-size:.92rem}.site-foot p{margin:0}@media(prefers-color-scheme:dark){.site-why-art{color:var(--accent)}}.site-nav a,.site-foot a{color:var(--brand);font-weight:600;text-decoration:none}.site-nav a:hover,.site-foot a:hover{text-decoration:underline;text-underline-offset:3px}@media(prefers-color-scheme:dark){.site-nav a,.site-foot a{color:var(--accent)}}.home-link{color:var(--brand);font-weight:600;text-decoration:none}.home-link:hover{text-decoration:underline;text-underline-offset:3px}@media(prefers-color-scheme:dark){.home-link{color:var(--accent)}}.hero{padding:12px 14px}.hero-count strong{font-size:2.4rem}.hero-count span{font-size:.95rem}.hero-line{margin-top:3px;font-size:.92rem}.meter--hero{margin-top:10px}.hero-foot{margin-top:8px;font-size:.82rem}.hero-art{top:-10px;right:-26px;width:196px;height:172px;opacity:.46}.row-title{font-size:1.06rem;font-weight:600}.hero--gift{min-height:108px}.add-focus{margin-bottom:12px;padding:10px;border-radius:var(--radius);background:var(--gift-row);border:1px solid var(--gift-row-border)}.add-focus .add-bar input{background:var(--surface)}.send-run{display:flex;align-items:center;justify-content:center;gap:8px}.send-run-mark{display:grid;place-items:center;background:var(--buy-bg, var(--shop-row));color:var(--buy-ink, var(--accent));min-width:25px;height:24px;padding:0 5px;border-radius:var(--buy-radius, 999px);font-size:.7rem;font-weight:700;line-height:1}.run-sheet{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;padding:0 10px calc(env(safe-area-inset-bottom) + 76px);pointer-events:none}.run-card{width:100%;max-width:620px;display:flex;flex-direction:column;gap:8px;padding:14px 16px 12px;border-radius:var(--radius-hero);background:var(--surface);box-shadow:0 2px 6px #16241c1a,0 18px 40px -12px #16241c6b;pointer-events:auto}@media(prefers-color-scheme:dark){.run-card{box-shadow:0 2px 6px #00000080,0 18px 40px -12px #000c}}.run-progress{margin:0;color:var(--text-dim);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.run-item{margin:0;font-size:1.4rem;line-height:1.15;letter-spacing:-.02em}.run-hint{margin:0;color:var(--text-dim);font-size:.78rem;line-height:1.4}.run-actions{display:flex;align-items:center;gap:16px;margin-top:2px}.run-actions .link-button{font-size:.85rem}.run-actions .link-button:last-child{margin-left:auto}.run-actions .link-button:disabled{opacity:.4;cursor:default}.run-hint .link-button{font-size:inherit}.tab--voice .dictate-icon{display:grid;place-items:center}.tab--voice.is-listening{color:var(--brand);background:var(--tab-on)}.content{view-transition-name:screen}::view-transition-old(screen),::view-transition-new(screen){mix-blend-mode:normal;animation-duration:.24s;animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-fill-mode:both}@keyframes screen-in-from-right{0%{transform:translate(100%)}}@keyframes screen-out-to-left{to{transform:translate(-28%);opacity:.4}}@keyframes screen-in-from-left{0%{transform:translate(-28%);opacity:.4}}@keyframes screen-out-to-right{to{transform:translate(100%)}}@view-transition{navigation:auto}html[data-nav=forward]::view-transition-new(screen){animation-name:screen-in-from-right}html[data-nav=forward]::view-transition-old(screen){animation-name:screen-out-to-left}html[data-nav=back]::view-transition-old(screen){animation-name:screen-out-to-right;z-index:1}html[data-nav=back]::view-transition-new(screen){animation-name:screen-in-from-left}@media(prefers-reduced-motion:reduce){::view-transition-old(screen),::view-transition-new(screen){animation:none}}:root{--recipe-brand: #799171;--recipe-accent: #506b48;--recipe-tint: #e9efe4;--recipe-page: #f3f5f0}@media(prefers-color-scheme:dark){:root{--recipe-brand: #41533c;--recipe-accent: #a8c99a;--recipe-tint: #1b241a;--recipe-page: #10150f}}.theme-recipe{--brand: var(--recipe-brand);--accent: var(--recipe-accent);--surface-2: var(--recipe-tint);--page: var(--recipe-page);--tab-on: #fff;--brand-deep: var(--recipe-accent)}.hero--recipe{position:relative;overflow:hidden;min-height:128px;border-radius:var(--radius-hero)}.hero-facts{display:flex;flex-wrap:wrap;gap:2px 14px}.hero-facts span{white-space:nowrap}.hero-does{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:14px 0 0;position:relative;z-index:1}@media(prefers-color-scheme:dark){.theme-recipe{--brand-deep: var(--recipe-brand)}.recipe-thumb{background:color-mix(in srgb,var(--course, var(--brand)) 26%,var(--surface));color:color-mix(in srgb,var(--course, var(--brand)) 55%,#fff)}.chip{border-color:color-mix(in srgb,var(--course, var(--border)) 55%,var(--border));background:color-mix(in srgb,var(--course, transparent) 14%,var(--surface))}.chip-art{display:inline-flex;vertical-align:-3px;margin-right:6px}.chip--on{border-color:color-mix(in srgb,var(--course, var(--accent)) 78%,#fff);background:color-mix(in srgb,var(--course, var(--accent)) 78%,#fff);color:#16100b}.recipe-sheet h3{color:color-mix(in srgb,var(--course, var(--brand)) 55%,#fff)}}.hero-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,color-mix(in srgb,var(--brand) 94%,transparent),color-mix(in srgb,var(--brand) 80%,transparent) 45%,color-mix(in srgb,var(--brand) 50%,transparent))}.hero--photo .hero-said{position:relative;z-index:1}.hero-preview{overflow:hidden;margin-bottom:12px;border-radius:var(--radius-card)}.hero-preview img{display:block;width:100%;max-height:160px;object-fit:cover}.recipe-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.recipe-row{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px 10px 10px;border:0;border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--lift);color:var(--text);font:inherit;text-align:left;cursor:pointer}.recipe-row:hover,.recipe-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.recipe-thumb{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--course, var(--brand)) 13%,var(--surface));color:var(--course, var(--brand))}.recipe-thumb img{width:100%;height:100%;object-fit:cover}.recipe-said{display:grid;gap:2px;min-width:0}.recipe-title{font-weight:620;line-height:1.25}.recipe-under{color:var(--text-dim);font-size:.86rem}.search-box{width:100%;min-height:var(--tap);margin:0;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.back-link{display:inline-flex;align-items:center;min-height:40px;margin:0 0 6px;padding:0 4px 0 0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.recipe-oven{margin:8px 2px 14px}.recipe-sheet h3{color:var(--course, var(--brand))}.recipe-ingredients{margin:0 0 18px;padding-left:20px;line-height:1.7}.recipe-method p{line-height:1.6;margin:0 0 12px}.batch-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.chip{min-height:40px;padding:8px 14px;border:1px solid color-mix(in srgb,var(--course, var(--border)) 62%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--course, transparent) 8%,var(--surface));color:var(--text);font:inherit;cursor:pointer}.chip--on{border-color:var(--course, var(--accent));background:var(--course, var(--accent));color:#fff;font-weight:600}.pick-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:2px}.pick{display:flex;align-items:center;gap:12px;min-height:var(--tap);cursor:pointer}.pick input{width:22px;height:22px;accent-color:var(--accent)}.credits{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:.9rem}.credits a{color:var(--accent)}.credits-source{font-size:.84rem;opacity:.85}.field{display:grid;gap:4px;margin-bottom:12px}.field>span{font-size:.86rem;font-weight:600;color:var(--text-dim)}.field input,.field textarea{width:100%;min-height:var(--tap);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.field--chips{margin:0 0 12px;padding:0;border:0}.field--chips legend{padding:0;margin-bottom:6px;font-size:.86rem;font-weight:600;color:var(--text-dim)}.chapters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none}.chapters::-webkit-scrollbar{display:none}.chapters .chip{flex:0 0 auto}.field-row{display:flex;gap:10px}.field--small{flex:1 1 0;min-width:0}.warn{padding:12px 14px;border-radius:var(--radius);background:var(--surface-2)}.warn p{margin:0 0 10px}.photo-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px}.photo{position:relative;flex:0 0 auto}.photo--waiting{width:96px;height:96px;border-radius:12px;background:var(--surface-2)}.photo-open{display:block;padding:0;border:0;background:none;cursor:zoom-in}.photo>img{display:block;width:96px;height:96px;object-fit:cover;border-radius:12px}.photo-open img{width:96px;height:96px;object-fit:cover;border-radius:12px}.photo--big{flex-basis:100%;width:100%}.photo--big .photo-open{cursor:zoom-out}.photo--big .photo-open img{width:100%;height:auto;max-height:none;object-fit:contain}.photo-drop{position:absolute;top:4px;right:4px;width:28px;height:28px;border:0;border-radius:999px;background:#0000008c;color:#fff;font-size:18px;line-height:1;cursor:pointer}.btn-icon{display:inline-flex;vertical-align:-4px;margin-right:8px}@media print{:root{--page: #fff;--surface: #fff;--surface-2: #fff;--text: #000;--text-dim: #333}.topbar,.tabbar,.toast,.no-print,.back-link,.hero-art,.card{display:none!important}.hero{padding:0;background:none;color:#000;border-radius:0;min-height:0}.hero-where{opacity:1;font-style:italic}.hero-big{font-size:20pt}.hero-line{opacity:1;font-weight:600}.app,.content{display:block;padding:0;margin:0;background:#fff}.recipe-sheet{font-size:11pt}.recipe-sheet h3{color:#000}.recipe-ingredients{columns:2;column-gap:24px;margin-bottom:14px}.recipe-ingredients li{break-inside:avoid}.recipe-method p{orphans:3;widows:3}@page{margin:14mm}}
