:root{color-scheme:light;--bg: #f7f5ef;--surface: #ffffff;--surface-2: #f0ede4;--surface-hover: #e9e5d9;--border: #ddd8c9;--border-strong: #bdb6a2;--text: #1f1d19;--text-muted: #5f5b4f;--text-faint: #7d7867;--accent: #2b6a4b;--accent-hover: #235a3f;--accent-soft: #e1eee6;--accent-ink: #1d5a3d;--on-accent: #ffffff;--sale: #8a5200;--sale-soft: #fdf0d3;--sale-border: #e3b866;--danger: #a3302a;--danger-soft: #fbe8e5;--on-dark: #ffffff;--on-light: #1a1a1a;--overlay: rgba(25, 22, 16, .5);--shadow: 0 1px 2px rgba(25, 22, 16, .08), 0 4px 14px rgba(25, 22, 16, .07);--shadow-lg: 0 10px 40px rgba(25, 22, 16, .25);--toast-bg: var(--text);--toast-text: var(--bg);--toast-action: #6bbf93;--segment-on: var(--surface);--segment-ring: transparent;--highlight: var(--accent-soft)}:root[data-theme=dark]{color-scheme:dark;--bg: #131311;--surface: #1c1c19;--surface-2: #252521;--surface-hover: #2f2f2a;--border: #34332c;--border-strong: #4d4b41;--text: #efece3;--text-muted: #b0ab9b;--text-faint: #8b8676;--accent: #6bbf93;--accent-hover: #82cca6;--accent-soft: #1a2a21;--accent-ink: #86d0a9;--on-accent: #0c1a12;--sale: #f0c36a;--sale-soft: #33270f;--sale-border: #6f541c;--danger: #ee8176;--danger-soft: #35201e;--overlay: rgba(0, 0, 0, .62);--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 4px 14px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .6);--toast-bg: var(--surface-hover);--toast-text: var(--text);--toast-action: var(--accent);--segment-on: var(--surface-hover);--segment-ring: var(--border-strong);--highlight: #21412f}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #131311;--surface: #1c1c19;--surface-2: #252521;--surface-hover: #2f2f2a;--border: #34332c;--border-strong: #4d4b41;--text: #efece3;--text-muted: #b0ab9b;--text-faint: #8b8676;--accent: #6bbf93;--accent-hover: #82cca6;--accent-soft: #1a2a21;--accent-ink: #86d0a9;--on-accent: #0c1a12;--sale: #f0c36a;--sale-soft: #33270f;--sale-border: #6f541c;--danger: #ee8176;--danger-soft: #35201e;--overlay: rgba(0, 0, 0, .62);--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 4px 14px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .6);--toast-bg: var(--surface-hover);--toast-text: var(--text);--toast-action: var(--accent);--segment-on: var(--surface-hover);--segment-ring: var(--border-strong);--highlight: #21412f}}:root{--tap: 44px;--row: 56px;--sidebar-w: 248px;--tabbar-h: 62px;--radius: 12px;--radius-sm: 8px;--gutter: 16px;--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}body.no-scroll{overflow:hidden}h1,h2,h3,p,ul,ol,dl,dd,fieldset{margin:0;padding:0}h1{font-size:1.6rem;line-height:1.2;letter-spacing:-.01em}h2{font-size:1.1rem}h3{font-size:1rem}ul,ol{list-style:none}a{color:var(--accent-ink)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--text-muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pre{white-space:pre-wrap}.icon{flex:none;vertical-align:-.2em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:var(--tap);padding:.5rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-weight:600;text-decoration:none;cursor:pointer}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--quiet{background:transparent;border-color:transparent;color:var(--accent-ink)}.btn--quiet:hover:not(:disabled){background:var(--accent-soft)}.btn--small{padding:.35rem .7rem;font-size:.92rem}.btn--big{min-height:56px;font-size:1.1rem}.btn--block{display:flex;width:100%}.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;text-decoration:none}.icon-button:hover{background:var(--surface-hover)}.icon-button--bordered{border-color:var(--border-strong);background:var(--surface)}.link-button{display:inline-flex;align-items:center;gap:.25rem;padding:0;border:0;background:none;color:var(--accent-ink);font-weight:600;text-decoration:underline;cursor:pointer}input[type=text],input[type=search],input[type=url],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;min-height:var(--tap);padding:.55rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}textarea{resize:vertical;line-height:1.5}input[type=checkbox],input[type=radio]{width:22px;height:22px;flex:none;accent-color:var(--accent)}input.input--big{min-height:56px;font-size:1.1rem}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.field--inline{flex-direction:row;align-items:center;gap:.75rem}.field--inline select{width:auto}.field__label{font-size:.9rem;font-weight:600;color:var(--text-muted)}.field__hint{font-size:.88rem;color:var(--text-muted)}.field__row{display:flex;gap:.5rem;align-items:center}.notice{padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border-strong)}.hint{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .5rem .5rem 1rem;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text)}.answer{padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--accent-soft);font-size:1.05rem}.hint__actions{display:flex;flex-shrink:0;gap:.25rem}.soft-tag{display:inline-block;padding:.05rem .5rem;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:.8rem;white-space:nowrap}.rules{display:flex;flex-direction:column;gap:.25rem}.rule{display:flex;align-items:center;gap:.5rem;color:var(--text-muted)}.rule__mark{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:2px solid var(--border-strong);border-radius:50%}.rule.is-met{color:var(--text)}.rule.is-met .rule__mark{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.check-row,.switch{display:flex;align-items:center;gap:.75rem;min-height:var(--tap);cursor:pointer}.check-row__text{min-width:0}.checklist{display:flex;flex-direction:column}.choice{display:flex;flex-direction:column;gap:.25rem;min-width:0;border:0}.choice__option{display:flex;align-items:flex-start;gap:.75rem;min-height:var(--tap);padding:.5rem 0;cursor:pointer}.choice__sub{margin-left:1.9rem;padding-left:.75rem;border-left:2px solid var(--border)}.auth{display:flex;min-height:100dvh;align-items:center;justify-content:center;padding:var(--gutter)}.auth__card{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:400px;padding:1.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.auth__brand{font-size:2rem;color:var(--accent-ink)}.splash{min-height:100dvh}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:1rem;height:100dvh;padding:1.25rem 1rem;border-right:1px solid var(--border);background:var(--surface);overflow-y:auto}.sidebar__brand{font-size:1.5rem;font-weight:800;color:var(--accent-ink);text-decoration:none}.sidebar__nav{display:flex;flex-direction:column;gap:.15rem}.sidebar__foot{display:flex;flex-direction:column;gap:.15rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border)}.nav-link{display:flex;align-items:center;gap:.75rem;min-height:var(--tap);padding:.4rem .75rem;border-radius:var(--radius-sm);color:var(--text);font-weight:600;text-decoration:none}.nav-link:hover{background:var(--surface-hover)}.nav-link.is-active{background:var(--accent-soft);color:var(--accent-ink)}.nav-link__icon{position:relative;display:inline-flex}.dot{position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.nav-link__icon .dot{top:-2px;right:-3px}.main{min-width:0;padding:1.5rem 2rem 4rem}.tabbar,.top-actions{display:none}.banner{display:block;width:100%;margin:0 0 1rem;padding:.6rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);text-align:left}.banner--action{cursor:pointer;font-weight:600}.page{display:flex;flex-direction:column;gap:1.25rem;max-width:920px}.page--narrow{max-width:640px}.page__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:.25rem;min-height:var(--tap);color:var(--text-muted);text-decoration:none;font-weight:600}.section{display:flex;flex-direction:column;gap:.75rem}.section__head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.section__title{font-size:1.15rem}.section__sub{margin-top:.5rem;font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.sheet__lead{font-weight:700;font-size:1.1rem}.empty{padding:1rem 0}.stack{display:flex;flex-direction:column;gap:.9rem}.stack--tight{gap:.4rem}.row{display:flex;align-items:center;gap:.6rem}.row--wrap{flex-wrap:wrap}.row--between{justify-content:space-between}.row>.field{flex:1}.card{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.card--flat{padding:.85rem 1rem}.card__title{font-weight:700}.plain-list{display:flex;flex-direction:column;gap:.35rem;padding:.25rem 0}.plain-list--actions>li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.toolbar{display:flex;gap:.6rem;align-items:center}.toolbar .search{flex:1}.search{min-height:52px;font-size:1.05rem}.meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin-top:.5rem;color:var(--text-muted)}.segmented{display:inline-flex;padding:3px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-2)}.segmented button{min-height:38px;padding:.25rem .9rem;border:0;border-radius:8px;background:transparent;font-weight:600;color:var(--text-muted);cursor:pointer}.segmented button.is-on{background:var(--segment-on);color:var(--text);box-shadow:var(--shadow),0 0 0 1px var(--segment-ring)}.segmented--choice{display:flex;max-width:24rem;margin:0}.segmented--choice label{position:relative;flex:1}.segmented--choice span{display:flex;align-items:center;justify-content:center;min-height:38px;padding:.25rem .9rem;border-radius:8px;font-weight:600;color:var(--text-muted);cursor:pointer}.segmented--choice input:checked+span{background:var(--segment-on);color:var(--text);box-shadow:var(--shadow),0 0 0 1px var(--segment-ring)}.segmented--choice input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.segmented--choice input{position:absolute;width:1px;height:1px;opacity:0}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips--scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .75rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);font-size:.95rem;white-space:nowrap}.chip--button{min-height:var(--tap);cursor:pointer;font-weight:600}.chip--button:hover{background:var(--surface-hover)}.chip--button.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip--suggest{background:var(--surface-2)}.chip__x{min-width:28px;min-height:28px;border:0;border-radius:50%;background:transparent;font-size:1.1rem;line-height:1;cursor:pointer}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .6rem;border-radius:999px;font-size:.85rem;font-weight:700;white-space:nowrap}.pill--ready{background:var(--accent-soft);color:var(--accent-ink)}.pill--buy,.pill--list{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong)}.sale-tag{display:inline-flex;align-items:center;padding:.1rem .55rem;border:1px solid var(--sale-border);border-radius:999px;background:var(--sale-soft);color:var(--sale);font-size:.82rem;font-weight:700;white-space:nowrap}.event-tag{display:inline-flex;align-items:center;gap:.25rem;color:var(--sale);font-weight:600;font-size:.9rem}.today-tag{padding:.05rem .55rem;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.8rem;font-weight:700}.person-chip{display:inline-flex;flex:none;align-items:center;justify-content:center;border-radius:50%;font-weight:700}.person-chip--md{width:32px;height:32px}.person-chip--sm{width:24px;height:24px;font-size:.8rem}.unread-dot{width:10px;height:10px;flex:none;border-radius:50%}.unread-dot.is-on{background:var(--accent)}.menu{z-index:20;min-width:200px;padding:.35rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-lg)}.menu--inline{position:static;box-shadow:none;margin:.25rem 0}.menu__item{display:block;width:100%;min-height:var(--tap);padding:.5rem .75rem;border:0;border-radius:6px;background:transparent;text-align:left;cursor:pointer}.menu__item:hover,.menu__item.is-current{background:var(--accent-soft)}.disclosure>summary{display:flex;align-items:center;gap:.6rem;min-height:var(--tap);font-weight:600;list-style:none;cursor:pointer}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"";flex:none;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease}.disclosure[open]>summary:before{transform:rotate(45deg)}.disclosure--quiet>summary{color:var(--text-muted);font-weight:500}.disclosure[open]>summary{margin-bottom:.25rem}.group{display:flex;flex-direction:column}.group__head,.group__toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:var(--tap);padding:.4rem .25rem;border:0;background:var(--bg);color:var(--text-muted);font-size:.85rem;font-weight:700;letter-spacing:.04em;text-align:left;text-transform:uppercase}button.group__head,.group__toggle{cursor:pointer}.group__toggle{justify-content:flex-start;letter-spacing:normal;text-transform:none;font-size:1rem;color:var(--text)}.group__change{display:inline-flex;align-items:center;gap:.25rem;text-transform:none;letter-spacing:normal;color:var(--accent-ink)}.page--list .group__head:not(button){position:sticky;top:0;z-index:3}.group--sale .group__head{color:var(--sale)}.lines{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.line{display:flex;align-items:stretch;min-height:var(--row);border-bottom:1px solid var(--border);transition:opacity .28s ease,transform .28s ease,background-color .6s ease}.line:last-child{border-bottom:0}.line.is-sale{background:var(--sale-soft);box-shadow:inset 4px 0 0 var(--sale-border)}.line.is-leaving{opacity:0;transform:translate(28px)}.line.is-fresh{background:var(--highlight)}.line.is-flash{animation:flash 1.2s ease 1}@keyframes flash{0%,60%{background:var(--highlight);box-shadow:inset 4px 0 0 var(--accent)}}.line__main{display:flex;flex:1;align-items:center;gap:.85rem;min-width:0;min-height:var(--row);padding:.5rem .5rem .5rem 1rem;border:0;background:transparent;text-align:left;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.line__text{display:flex;flex:1;flex-direction:column;min-width:0}.line__name{font-size:1.05rem;font-weight:600;overflow-wrap:anywhere}.line__meta{color:var(--text-muted);font-size:.92rem}.line__ended{font-size:.85rem}.line__more{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);border:0;background:transparent;color:var(--text-muted);cursor:pointer}.line__more:hover{background:var(--surface-hover)}.line.is-checked .line__name{color:var(--text-muted);text-decoration:line-through;font-weight:500}.check{display:inline-flex;flex:none;align-items:center;justify-content:center;width:26px;height:26px;border:2px solid var(--border-strong);border-radius:50%}.check.is-on{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.page--list{padding-bottom:7rem}.addbar{position:fixed;right:0;bottom:0;left:var(--sidebar-w);z-index:15;display:flex;flex-direction:column;gap:.5rem;padding:.75rem 2rem calc(.75rem + var(--safe-bottom));border-top:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.addbar__form{display:flex;gap:.5rem;max-width:880px}.addbar__input{flex:1;min-height:52px;font-size:1.05rem}.addbar__button{min-width:80px}.addbar__preview{max-width:880px}.list-head{display:flex;align-items:center;gap:.5rem}.list-head__title{flex:1;min-width:0}.list-head__title h1{overflow-wrap:anywhere}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem}.list-card{display:flex;flex-direction:column;gap:.5rem;min-height:120px;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none;box-shadow:var(--shadow)}.list-card:hover{background:var(--surface-hover)}.list-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.list-card__name{font-size:1.25rem;font-weight:700;overflow-wrap:anywhere}.list-card__share,.list-card__count{color:var(--text-muted)}.list-card--new{align-items:center;justify-content:center;flex-direction:row;border-style:dashed;background:transparent;box-shadow:none;color:var(--accent-ink);font-weight:700;font-size:1.05rem;cursor:pointer}.glance{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.glance li+li{border-top:1px solid var(--border)}.glance__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--row);padding:.5rem 1rem;color:var(--text);text-decoration:none}.glance__row:hover{background:var(--surface-hover)}.glance__name{display:inline-flex;align-items:center;gap:.5rem;font-weight:600}.quickadd{position:relative;display:flex;flex-direction:column;gap:.35rem}.quickadd__form{display:flex;align-items:center;gap:.5rem;min-height:48px;padding:0 .75rem;border:2px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg)}.quickadd__form:focus-within{border-color:var(--accent)}.quickadd .quickadd__input{flex:1;min-width:0;min-height:44px;padding:0;border:0;background:transparent;outline:0}.quickadd__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.quickadd__preview{color:var(--text-muted);font-size:.9rem}.quickadd__hint{font-size:.9rem;color:var(--text-muted)}.quickadd .menu{position:absolute;top:100%;left:0;right:0}.quickadd--page{display:flex}.plan-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.plan-nav__title{min-width:8ch;font-size:1.2rem;text-align:center}.day{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.day.is-today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.day__head{display:flex;align-items:center;gap:.6rem}.day__title{font-size:1.05rem;font-weight:700;color:var(--text);text-decoration:none}.day__more{margin-left:auto}.dinner-empty{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:64px;border:2px dashed var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--accent-ink);font-weight:700;cursor:pointer}.dinner-empty:hover{background:var(--accent-soft)}.entry{display:flex;flex-direction:column;align-items:stretch;gap:.1rem}.entry__main{display:flex;align-items:center;gap:.75rem;min-height:var(--row);padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);text-align:left;cursor:pointer}.entry--large .entry__main{min-height:72px;font-size:1.1rem}.entry__main:hover{background:var(--surface-hover)}.entry__icon{display:inline-flex;color:var(--text-muted)}.entry__text{display:flex;flex:1;flex-direction:column;min-width:0}.entry__title{font-weight:700;overflow-wrap:anywhere}.entry__sub{color:var(--text-muted);font-size:.9rem}.entry__side{display:inline-flex;align-items:center;gap:.5rem}.entry>.btn{align-self:flex-start}.entry__actions{display:flex;flex-wrap:wrap;gap:.25rem}.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.month__dow{padding:.25rem 0;color:var(--text-muted);font-size:.8rem;font-weight:700;text-align:center;text-transform:uppercase}.month__day{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-height:64px;padding:.35rem .1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.month__day.is-out{background:transparent;color:var(--text-faint)}.month__day.is-today{border:2px solid var(--accent)}.month__num{font-weight:700}.month__dots{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}.dot-mark{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.month__footer{margin-top:.75rem}.agenda-day{display:flex;flex-direction:column;gap:.35rem}.summary-line{font-weight:700}.selected-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);font-weight:700}.picker{display:flex;flex-direction:column;gap:.5rem}.picker__results{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.picker__results--flat{max-height:none}.picker__results li+li{border-top:1px solid var(--border)}.picker__row{display:flex;align-items:center;gap:.6rem;width:100%;min-height:var(--tap);padding:.4rem .75rem;border:0;background:transparent;text-align:left;cursor:pointer}.picker__row>span:first-of-type{flex:1}.picker__row:hover{background:var(--surface-hover)}.picker__row.is-selected{background:var(--accent-soft)}.picker__make{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem}.make-list{display:flex;flex-direction:column;gap:.6rem}.make-card{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.make-card__main{display:flex;flex:1;align-items:center;gap:.75rem;min-width:0;min-height:var(--row);padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.make-card__icon{display:inline-flex;color:var(--text-muted)}.make-card__text{display:flex;flex-direction:column;min-width:0}.make-card__title{font-weight:700;overflow-wrap:anywhere}.make-card__sub{color:var(--text-muted);font-size:.92rem}.rows{display:flex;flex-direction:column;gap:.5rem}.row-link{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:var(--row);padding:.6rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none}.row-link:hover{background:var(--surface-hover)}.row-link__text{display:flex;flex-direction:column;min-width:0}.row-link__title{font-weight:700;overflow-wrap:anywhere}.row-link__sub{font-size:.92rem}.comp-row{display:flex;align-items:center;gap:.75rem;min-height:var(--row);padding:.25rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.comp-row__icon{display:inline-flex;color:var(--text-muted)}.comp-row__text{flex:1;min-width:0;overflow-wrap:anywhere}.recipe-head{display:flex;flex-direction:column}.actions{display:flex;flex-direction:column;gap:.5rem}.ingredients{display:flex;flex-direction:column}.ingredient{display:flex;align-items:center;gap:.75rem;min-height:var(--tap);padding:.25rem 0}.ingredient--tap{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font-size:1.1rem}.ingredient--tap.is-done .ingredient__text{color:var(--text-muted);text-decoration:line-through}.ingredient__text{min-width:0;overflow-wrap:anywhere}.mark{display:inline-flex;align-items:center;gap:.25rem;min-width:78px;font-size:.82rem;font-weight:700;color:var(--text-muted)}.mark--have{color:var(--accent-ink)}.mark--need{color:var(--text)}.steps{display:flex;flex-direction:column;gap:1rem;counter-reset:step}.steps li{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding-left:2.5rem;position:relative;counter-increment:step}.steps li:before{content:counter(step);position:absolute;left:0;top:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--surface-2);font-weight:700}.parsed{display:flex;flex-direction:column;gap:.35rem;padding:.25rem 0}.parsed li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.parsed__section{flex-basis:100%;margin-top:.4rem;font-size:.82rem;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.parsed__step{flex:1;min-width:0}.cook{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;background:var(--bg)}.cook__bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.cook__title{flex:1;min-width:0}.cook__step{display:flex;flex:1;flex-direction:column;align-items:flex-start;justify-content:center;gap:1.25rem;width:100%;max-width:900px;margin:0 auto;padding:1.5rem 1.25rem;overflow-y:auto}.cook__section{color:var(--accent-ink);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.cook__text{font-size:clamp(1.6rem,1rem + 2.6vw,2.7rem);line-height:1.3;font-weight:600}.cook__nav{display:flex;gap:.75rem;padding:.75rem 1rem calc(.75rem + var(--safe-bottom));border-top:1px solid var(--border)}.cook__nav .btn{flex:1;min-height:64px}.cook__drawer{position:absolute;right:0;bottom:0;left:0;max-height:70%;padding:1rem 1.25rem calc(1rem + var(--safe-bottom));overflow-y:auto;border-top:1px solid var(--border-strong);border-radius:16px 16px 0 0;background:var(--surface);box-shadow:var(--shadow-lg)}.cook__drawer-head{display:flex;align-items:center;justify-content:space-between}.timer-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.cook>.timer-strip{margin:0;padding:.5rem 1rem;border-bottom:1px solid var(--border)}.timer-chip{display:inline-flex;align-items:center;gap:.6rem;padding:.2rem .4rem .2rem .9rem;border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:700}.timer-chip__label{max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}a.timer-chip__label{text-decoration:underline;text-underline-offset:3px}.timer-chip__time{font-variant-numeric:tabular-nums}.timer-chip__add{min-height:32px;padding:0 .6rem;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer}.timer-chip__stop{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.2rem;cursor:pointer}.timer-alert{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--gutter);background:var(--overlay)}.timer-alert__card{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:380px;padding:1.5rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);text-align:center}.timer-alert__title{font-size:1.3rem;font-weight:800}.timer-alert__text{font-size:1.1rem}.timer-alert__actions{display:flex;gap:.75rem}.timer-alert__actions .btn{flex:1;min-height:56px}.sheet-backdrop{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end;background:var(--overlay)}.sheet{display:flex;flex-direction:column;width:min(440px,100%);height:100%;background:var(--surface);box-shadow:var(--shadow-lg);outline:0}.sheet--wide{width:min(560px,100%)}.sheet__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--border)}.sheet__title{min-width:0;font-size:1.15rem;overflow-wrap:anywhere}.sheet__body{display:flex;flex:1;flex-direction:column;gap:1rem;padding:1.25rem;overflow-y:auto}.sheet__footer{padding:.75rem 1.25rem calc(.75rem + var(--safe-bottom));border-top:1px solid var(--border)}.sheet__footer--primary{display:flex;flex-direction:column;gap:.5rem}.sheet__footer--primary>.btn{width:100%;min-height:52px}.sheet__body>.chip{align-self:flex-start}.stepper{display:flex;align-items:center;gap:.4rem}.stepper input.stepper__value{width:4.5rem;text-align:center;font-weight:700}.stepper input.stepper__unit{flex:1;min-width:0}.swatches{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.swatch{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:3px solid transparent;border-radius:50%;color:var(--on-dark);cursor:pointer}.swatch.is-on{border-color:var(--text)}.swatch--custom{border:2px dashed var(--border-strong);background:var(--surface-2);overflow:hidden;position:relative}.swatch--custom input{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;border:0;opacity:0;cursor:pointer}.pantry-row{display:flex;align-items:center;gap:.5rem;min-height:var(--row);padding:.25rem .5rem .25rem 1rem;border-bottom:1px solid var(--border)}.pantry-row:last-child{border-bottom:0}.pantry-row__main{display:flex;flex:1;flex-direction:column;min-width:0;min-height:var(--tap);justify-content:center;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.pantry-row__name{font-weight:600}.pantry-row__meta{font-size:.88rem}.activity__row{display:flex;align-items:center;gap:.5rem;min-height:var(--row);padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.activity__main{flex:1;min-height:var(--tap);padding:0;border:0;background:transparent;text-align:left}button.activity__main{cursor:pointer}.activity__title{font-weight:600}.activity__body{padding:.4rem 1rem .6rem 1.9rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem}.stats div{padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.stats dt{font-size:.85rem;color:var(--text-muted)}.stats dd{font-size:1.4rem;font-weight:700}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);text-align:left}.toasts{position:fixed;right:0;bottom:16px;left:0;z-index:90;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:0 var(--gutter);pointer-events:none}body[data-addbar="1"] .toasts{bottom:150px}.toast{display:flex;align-items:center;gap:1rem;max-width:min(520px,100%);padding:.35rem .5rem .35rem 1rem;border-radius:var(--radius-sm);background:var(--toast-bg);color:var(--toast-text);box-shadow:var(--shadow-lg);pointer-events:auto}.toast__message{padding:.4rem 0}.toast__undo{min-width:var(--tap);min-height:var(--tap);padding:0 .9rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--toast-action);font-weight:800;cursor:pointer}@media(max-width:760px){.app{display:block}.sidebar{display:none}.main{padding:1rem var(--gutter) calc(var(--tabbar-h) + var(--safe-bottom) + 2rem)}.tabbar{position:fixed;right:0;bottom:0;left:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);border-top:1px solid var(--border);background:var(--surface)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:var(--tap);color:var(--text-muted);font-size:.75rem;font-weight:700;text-decoration:none}.tab.is-active{color:var(--accent-ink)}.top-actions{display:flex;align-items:center;gap:.25rem}.toasts{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px)}body[data-addbar="1"] .toasts{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 150px)}.addbar{bottom:calc(var(--tabbar-h) + var(--safe-bottom));left:0;padding:.6rem var(--gutter)}.page--list{padding-bottom:6rem}.cook{z-index:60}.sheet-backdrop{align-items:flex-end}.sheet,.sheet--wide{width:100%;height:auto;max-height:92dvh;border-radius:16px 16px 0 0}.sheet__body{padding-bottom:calc(1.25rem + var(--safe-bottom))}.page__head h1{font-size:1.4rem}.plan-nav__title{flex:1}.month__day{min-height:54px}.entry__side .pill{display:none}}@media(min-width:761px){.quickadd--page{display:none}}@media(prefers-reduced-motion:reduce){.line,.line.is-flash{transition:none;animation:none}}
