:root,[data-theme=light]{--surface:#f2f9f8;--surface-raised:#fff;--surface-sunken:#dff0ee;--line:#c2dcd9;--line-strong:#56807c;--ink:#0b2a2e;--ink-muted:#41595d;--brand:#006f77;--brand-soft:#d2f0ef;--on-brand:#fff;--done:#2c7a1c;--done-soft:#dcf2cd;--accent:#9236c0;--accent-soft:#f3e4fb;--accent-ink:#7422a2;--on-accent:#fff;--link:var(--brand);--scrim:#0b2a2e66;--shadow-sm:0 1px 2px #0b2a2e14, 0 1px 3px #0b2a2e0f;--shadow-lg:0 8px 24px -4px #0b2a2e2e, 0 2px 6px #0b2a2e14;--focus-ring:0 0 0 2px #f2f9f8, 0 0 0 4px #006f77;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--surface:#0d1c1e;--surface-raised:#162a2d;--surface-sunken:#081315;--line:#2a4549;--line-strong:#6a9391;--ink:#e8f5f3;--ink-muted:#a2bcba;--brand:#4fd0cc;--brand-soft:#0f3b3e;--on-brand:#06191b;--done:#86d671;--done-soft:#17341a;--accent:#c68cf0;--accent-soft:#34194b;--accent-ink:#ddb6fa;--on-accent:#1c0b2b;--link:var(--brand);--scrim:#000000a6;--shadow-sm:0 1px 3px #0009;--shadow-lg:0 12px 28px -4px #000c;--focus-ring:0 0 0 2px #0d1c1e, 0 0 0 4px #4fd0cc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--font-display:"Bricolage Grotesque", Figtree, ui-sans-serif, system-ui, sans-serif;--font-sans:Figtree, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--tap:44px;--radius-sm:8px;--radius-md:14px;--radius-lg:24px;--radius-full:9999px}.fm-display,.fm-title{font-family:var(--font-display)}.fm-num{font-variant-numeric:tabular-nums}.fm-row{gap:var(--space-3);padding:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.fm-col{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}:where(.fm-btn,.fm-stepper button,.fm-item,.fm-tab,.fm-slot):focus-visible{box-shadow:var(--focus-ring);outline:2px solid #0000}.fm-btn{font:inherit;min-height:var(--tap);padding:0 var(--space-4);justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer;font-size:14px;font-weight:600;line-height:20px;display:inline-flex}.fm-btn--primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.fm-btn--ghost{color:var(--brand);background:0 0;border-color:#0000}.fm-btn--icon{width:var(--tap);padding:0}.fm-btn svg{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.fm-badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--ink-muted);border:1px solid var(--line);white-space:nowrap;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.fm-badge--adapte{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.fm-badge--adapte:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.fm-badge--courses{background:var(--done-soft);color:var(--done);border-color:#0000}.fm-badge--sans{border-style:dashed;border-color:var(--line-strong);background:0 0}.fm-badge--today{background:var(--brand);color:var(--on-brand);border-color:#0000}.fm-stepper{border:1px solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface-raised);align-items:center;display:inline-flex}.fm-stepper button{font:inherit;width:var(--tap);height:var(--tap);color:var(--brand);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:0;font-size:20px}.fm-stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:64px;font-size:15px;font-weight:600}.fm-slot{gap:var(--space-1);min-height:88px;padding:var(--space-2);border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);text-align:left;color:var(--ink);flex-direction:column;font-size:14px;font-weight:600;line-height:20px;display:flex;position:relative}.fm-slot__dish{align-items:center;gap:var(--space-1);display:flex}.fm-slot__dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.fm-slot__more,.fm-slot__meta{color:var(--ink-muted);font-size:12px;font-weight:500;line-height:16px}.fm-slot__meta{gap:var(--space-2);align-items:center;margin-top:auto;display:flex}.fm-slot--sans .fm-slot__dish{color:var(--ink-muted);font-style:italic;font-weight:500}.fm-slot--empty{box-shadow:none;border:1px dashed var(--line);color:var(--ink-muted);background:0 0;justify-content:center;align-items:center;font-weight:500}.fm-slot--empty:hover{border-color:var(--brand);color:var(--brand);background:var(--surface-raised)}.fm-slot--off{background:var(--surface-sunken);box-shadow:none;min-height:40px;color:var(--ink-muted);border-color:#0000;justify-content:center;align-items:center;font-weight:500}.fm-slot--today{border-color:var(--brand)}.fm-item{gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) var(--space-4);background:var(--surface-raised);border-bottom:1px solid var(--line);grid-template-columns:28px 1fr auto;align-items:center;display:grid}.fm-item__check{border:2px solid var(--line-strong);border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.fm-item__name{font-size:16px;line-height:22px}.fm-item__src{color:var(--ink-muted);font-size:12px;line-height:16px;display:block}.fm-item__qty{font-variant-numeric:tabular-nums;text-align:right;font-size:15px;font-weight:600}.fm-item__delta{margin-left:var(--space-1);border-radius:var(--radius-full);background:var(--accent);color:var(--on-accent);padding:0 6px;font-size:12px;font-weight:700;line-height:18px;display:inline-block}.fm-item--done .fm-item__check{background:var(--done);border-color:var(--done)}.fm-item--done .fm-item__check:after{content:"";border-left:2px solid var(--surface-raised);border-bottom:2px solid var(--surface-raised);width:10px;height:6px;transform:translateY(-1px)rotate(-45deg)}.fm-item--done .fm-item__name,.fm-item--done .fm-item__qty{color:var(--ink-muted);text-decoration:line-through}.fm-banner{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--ink);flex-direction:column;display:flex}.fm-banner__title{align-items:center;gap:var(--space-2);color:var(--accent-ink);font-size:14px;font-weight:700;display:flex}.fm-banner__title:before{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px}.fm-banner__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.fm-banner .fm-btn{background:var(--surface-raised);min-height:36px}.fm-toast{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--ink);color:var(--surface);box-shadow:var(--shadow-lg);font-size:14px;display:inline-flex}.fm-toast .fm-btn{min-height:36px;color:var(--surface);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.fm-tabbar{background:var(--surface-raised);border-top:1px solid var(--line);padding-bottom:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.fm-tab{min-height:56px;color:var(--ink-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.fm-tab svg{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.fm-tab[aria-current=page]{color:var(--brand)}.fm-tab__badge{border-radius:var(--radius-full);background:var(--brand);min-width:18px;color:var(--on-brand);padding:0 5px;font-size:11px;line-height:18px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:24px}h1,h2,h3,p,ul,ol,dl,dd,fieldset{margin:0;padding:0}ul,ol{list-style:none}fieldset{border:0;min-width:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--link)}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:2px solid #0000}.fm-btn:focus-visible,.fm-stepper button:focus-visible{border-radius:var(--radius-full)}.fm-btn:disabled,.fm-stepper button:disabled{opacity:.45;cursor:not-allowed}a.fm-btn{text-decoration:none}.fm-stepper{display:inline-flex}.fm-btn--danger{color:var(--brand)}.icon{flex:none}.muted{color:var(--ink-muted)}.small{font-size:12px;line-height:16px}.error{color:var(--brand);font-weight:600}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack--tight{gap:var(--space-2)}.grow{flex:1 1 0;min-width:0}.btn-plain{background:0 0;border-color:#0000}.link-btn{color:var(--link);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.title{font-family:var(--font-display);letter-spacing:-.01em;font-size:28px;font-weight:650;line-height:34px}.display{font-family:var(--font-display);letter-spacing:-.02em;font-size:40px;font-weight:700;line-height:44px}.heading{font-size:18px;font-weight:700;line-height:24px}.section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:700;line-height:16px}.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card{padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-raised);border:1px solid var(--line)}.state{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;flex-direction:column;display:flex}.state__title{font-family:var(--font-display);font-size:22px;font-weight:650;line-height:28px}.wordmark{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-size:26px;font-weight:800;line-height:32px;text-decoration:none}.wordmark span{color:var(--brand)}.form{gap:var(--space-4);flex-direction:column;display:flex}.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{font-size:14px;font-weight:600;line-height:20px}.field__hint{color:var(--ink-muted);font-size:12px;line-height:16px}.input,.select,.textarea{width:100%;min-height:var(--tap);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface-raised)}.textarea{padding:var(--space-2) var(--space-3);resize:vertical;min-height:120px}.input--pill{border-radius:var(--radius-full);padding:0 var(--space-4)}.checkbox{align-items:flex-start;gap:var(--space-2);min-height:var(--tap);padding:var(--space-2) 0;display:flex}.checkbox input{width:20px;height:20px;accent-color:var(--brand);flex:none;margin:2px 0 0}.switch{appearance:none;border-radius:var(--radius-full);background:var(--line-strong);cursor:pointer;flex:none;width:40px;height:24px;margin:0;position:relative}.switch:after{content:"";background:var(--surface-raised);border-radius:50%;width:18px;height:18px;transition:left .15s ease-out;position:absolute;top:3px;left:3px}.switch:checked{background:var(--done)}.switch:checked:after{left:19px}.auth{align-items:center;gap:var(--space-6);min-height:100%;padding:var(--space-8) var(--space-4);flex-direction:column;display:flex}.auth__card{gap:var(--space-4);width:100%;max-width:420px;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.auth__card--wide{max-width:720px}.prose{gap:var(--space-3);flex-direction:column;display:flex}.prose h2{margin-top:var(--space-4);font-size:18px;line-height:24px}.prose ul{padding-left:var(--space-6);list-style:outside}.shell{flex-direction:column;height:100%;display:flex}.shell__header{align-items:center;gap:var(--space-4) var(--space-8);min-height:64px;padding:0 var(--space-8);background:var(--surface-raised);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.nav{gap:var(--space-1);display:flex}.nav__link{align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-full);color:var(--ink-muted);font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.nav__link[aria-current=page]{background:var(--brand-soft);color:var(--brand);font-weight:700}.sync{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:12px;line-height:16px;display:inline-flex}.sync--ok .icon{color:var(--done)}.sync--failed{color:var(--brand);font-weight:600}.shell__main{flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.shell .fm-tabbar{display:none}.page{width:100%;max-width:1240px;padding:var(--space-6) var(--space-8) var(--space-8);margin:0 auto}.page--narrow{max-width:760px}.page__head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.with-panel{flex:auto;align-items:stretch;height:100%;min-height:0;display:flex}.with-panel__main{flex:1 1 0;min-width:0;overflow-y:auto}.panel{background:var(--surface-raised);border-left:1px solid var(--line);max-width:100%;box-shadow:var(--shadow-lg);flex-direction:column;flex:0 0 440px;display:flex}.panel__head{align-items:flex-start;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-2) var(--space-6);display:flex}.panel__titles{min-width:0;padding-top:var(--space-2);flex:1 1 0}.panel__title{font-size:18px;font-weight:700;line-height:24px}.panel__body{gap:var(--space-4);padding:var(--space-2) var(--space-6) var(--space-6);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.panel__foot{gap:var(--space-2);padding:var(--space-3) var(--space-6) var(--space-4);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.dialog{border-radius:var(--radius-lg);background:var(--surface-raised);width:min(480px,100% - 32px);color:var(--ink);box-shadow:var(--shadow-lg);border:0;padding:0}.dialog::backdrop{background:var(--scrim)}.dialog__body{gap:var(--space-4);padding:var(--space-6);flex-direction:column;display:flex}.dialog__title{font-family:var(--font-display);font-size:22px;font-weight:650;line-height:28px}.dialog__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.toaster{left:0;right:0;bottom:var(--space-6);z-index:50;padding:0 var(--space-4);pointer-events:none;justify-content:center;display:flex;position:fixed}.toaster .fm-toast{pointer-events:auto;max-width:100%}@media (width<=899px){.shell__header{min-height:56px;padding:0 var(--space-4);gap:var(--space-2)}.shell__header .nav{display:none}.shell .fm-tabbar{padding-bottom:max(var(--space-2), env(safe-area-inset-bottom));flex:none;display:grid}.page{padding:var(--space-4)}.panel{z-index:40;border-left:0;flex-basis:auto;position:fixed;inset:0}.panel__head{padding-left:var(--space-4)}.panel__body{padding:var(--space-2) var(--space-4) var(--space-6)}.panel__foot{padding:var(--space-3) var(--space-4) max(var(--space-4), env(safe-area-inset-bottom))}.toaster{bottom:80px}.title{font-size:24px;line-height:30px}.display{font-size:32px;line-height:36px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{.shell{height:auto}.shell__main{overflow:visible}.shell__header,.fm-tabbar,.toaster,.no-print{display:none!important}}.select--inline{width:auto;min-height:36px}.grid-scroll{overflow-x:auto}.grid-table{border-collapse:separate;border-spacing:var(--space-1);font-size:14px}.grid-table th{color:var(--ink-muted);text-align:left;white-space:nowrap;padding-right:var(--space-2);font-weight:600}.grid-table thead th{text-align:center;padding:0}.grid-table__input{width:56px;min-height:40px;padding:0 var(--space-1);text-align:center}.invite-link{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunken);overflow-wrap:anywhere;font-size:14px;display:flex}.search{position:relative}.search .icon{color:var(--ink-muted);pointer-events:none;position:absolute;top:12px;left:14px}.search .input{padding-left:44px}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border-radius:var(--radius-full);border:1px solid var(--line-strong);background:var(--surface-raised);cursor:pointer;min-height:36px;padding:0 14px;font-size:14px;font-weight:600}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.thumb{border-radius:var(--radius-sm);background:var(--surface-sunken);width:44px;height:44px;font-family:var(--font-display);color:var(--ink-muted);flex:none;place-items:center;font-size:20px;font-weight:650;display:grid}.thumb--dashed{border:1px dashed var(--line-strong);background:0 0}.catalogue{flex:auto;align-items:stretch;height:100%;min-height:0;display:flex}.catalogue__list{gap:var(--space-4);max-width:100%;padding:var(--space-6) var(--space-4) var(--space-6) var(--space-6);border-right:1px solid var(--line);flex-direction:column;flex:0 0 400px;display:flex;overflow-y:auto}.catalogue__detail{min-width:0;padding:var(--space-8);flex:1 1 0;overflow-y:auto}.recipe-list{flex-direction:column;gap:2px;display:flex}.recipe-row{align-items:center;gap:var(--space-3);min-height:60px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;display:flex}.recipe-row:hover{background:var(--surface-sunken)}.recipe-row[aria-current=page]{background:var(--brand-soft)}.recipe-row .icon{color:var(--brand)}.recipe-row__meta{display:block}.recipe__back{align-items:center;gap:var(--space-1);min-height:var(--tap);text-decoration:none;display:none}.recipe__top{gap:var(--space-8);flex-wrap:wrap;align-items:flex-start;display:flex}.photo{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-lg);flex:0 320px;width:320px;max-width:100%}.photo--empty{background:var(--surface-sunken);font-family:var(--font-display);color:var(--ink-muted);place-items:center;font-size:96px;font-weight:650;display:grid}.meta{gap:var(--space-2) var(--space-6);flex-wrap:wrap;font-size:14px;line-height:20px;display:flex}.meta dt{color:var(--ink-muted);font-size:12px;line-height:16px}.meta dd{font-weight:600}.is-favorite{color:var(--brand)}.is-favorite .icon{fill:currentColor}.recipe__columns{gap:var(--space-8);flex-wrap:wrap;align-items:flex-start;display:flex}.recipe__ingredients{gap:var(--space-2);flex-direction:column;flex:300px;max-width:440px;display:flex}.recipe__steps{gap:var(--space-3);flex-direction:column;flex:340px;max-width:560px;display:flex}.recipe__variants{padding-top:var(--space-4);border-top:1px solid var(--line)}.qty-list li{gap:var(--space-3);border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;align-items:baseline;padding:10px 0;display:grid}.qty-list__qty{text-align:right;font-size:15px;font-weight:600}.steps{gap:var(--space-4);flex-direction:column;display:flex}.steps li{gap:var(--space-3);grid-template-columns:32px 1fr;display:grid}.steps__n{background:var(--surface-sunken);border-radius:50%;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.note-accent{align-self:flex-start;align-items:center;gap:var(--space-2);padding:6px var(--space-3);border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.note-accent:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.plan-grid{border-collapse:separate;border-spacing:var(--space-1);font-size:14px}.plan-grid th{color:var(--ink-muted);text-align:left;white-space:nowrap;padding-right:var(--space-2);font-weight:600}.plan-grid__cell{border-radius:var(--radius-sm);border:1px dashed var(--line-strong);width:100%;min-width:64px;min-height:40px;color:var(--brand);cursor:pointer;background:0 0;font-weight:700}.plan-grid__cell--busy{border-style:solid;border-color:var(--line);background:var(--surface-sunken);color:var(--ink)}.plan-grid__cell--off{opacity:.6}.editor__lines{gap:var(--space-2);flex-direction:column;display:flex}.editor__line{gap:var(--space-2);grid-template-columns:80px 110px minmax(120px,2fr) minmax(90px,1fr) auto auto;align-items:center;display:grid}.editor__optional{align-items:center;gap:var(--space-1);white-space:nowrap;display:inline-flex}.editor__moves{display:inline-flex}.editor__moves .fm-btn{width:36px;min-height:36px}.editor__new{grid-column:3/-1;justify-self:start}.editor__more>.stack{padding-top:var(--space-3)}.editor__photo{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-md);width:200px}.trash{padding-top:var(--space-2);border-top:1px solid var(--line)}@media (width<=899px){.catalogue__list{padding:var(--space-4);border-right:0;flex:auto}.catalogue__detail{padding:var(--space-4);display:none}.catalogue--detail .catalogue__list{display:none}.catalogue--detail .catalogue__detail{display:block}.recipe__back{display:inline-flex}.recipe__top{gap:var(--space-4)}.photo{flex-basis:100%;width:100%}.editor__line{padding-bottom:var(--space-2);border-bottom:1px solid var(--line);grid-template-columns:72px 1fr auto}.editor__name,.editor__note,.editor__new{grid-column:1/-1}}.planning{padding:var(--space-6) var(--space-8) var(--space-8);flex-direction:column;display:flex}.toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.toolbar__title{text-align:center;min-width:280px}.toolbar__jump .input{border-radius:var(--radius-full);width:auto}.segmented{border-radius:var(--radius-full);background:var(--surface-sunken);padding:3px;display:inline-flex}.segmented .fm-btn{min-height:38px;color:var(--ink-muted);background:0 0;border-color:#0000}.segmented .fm-btn[aria-pressed=true]{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm)}.week-scroll{padding-bottom:var(--space-2);overflow-x:auto}.week{gap:var(--space-3);min-width:900px;display:grid}.week__day{padding:0 var(--space-1) var(--space-1);flex-direction:column;display:flex}.week__weekday{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:12px;font-weight:600;line-height:16px;display:flex}.week__number{font-size:22px;font-weight:700;line-height:28px}.week__day--today,.week__day--today .week__weekday{color:var(--brand)}.week__day--past{color:var(--ink-muted)}.week__slot{color:var(--ink-muted);align-self:center;font-size:14px;font-weight:700}.week__legend{margin-top:var(--space-4)}.cell{cursor:pointer;min-height:120px;position:relative}.cell.fm-slot--off{min-height:120px}.cell__open{border-radius:inherit;cursor:pointer;background:0 0;border:0;position:absolute;inset:0}.cell__dish,.cell .fm-slot__more,.cell .fm-slot__meta{pointer-events:none;position:relative}.cell__dish{pointer-events:auto;cursor:grab}.cell__name{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cell__add{align-items:center;gap:var(--space-1);pointer-events:none;display:inline-flex}.cell__diners{align-items:center;gap:var(--space-1);display:inline-flex}.cell--past{opacity:.7}.cell--selected,.cell--over{border:2px solid var(--brand);background:var(--brand-soft)}.fm-slot--empty.cell--selected{color:var(--brand);font-weight:700}.day-view{gap:var(--space-4);flex-direction:column;display:flex}.days-strip{gap:var(--space-1);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.days-strip__day{border-radius:var(--radius-md);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;min-height:56px;padding:6px 0;display:flex}.days-strip__day--past{opacity:.6}.days-strip__day[aria-current=date]{background:var(--brand);color:var(--on-brand)}.days-strip__dot{border:1px solid var(--line-strong);border-radius:50%;width:5px;height:5px}.days-strip__dot--filled{background:currentColor;border-color:currentColor}.day-cards{gap:var(--space-4);flex-direction:column;display:flex}.day-card{gap:var(--space-2);flex-direction:column;display:flex}.day-card .cell{min-height:72px;font-size:16px}.day-view__hint{text-align:center}.list-view{gap:var(--space-4);flex-direction:column;max-width:720px;display:flex}.list-day{gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--line);flex-direction:column;display:flex}.list-day__title{align-items:center;gap:var(--space-2);display:flex}.list-meal{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised);text-align:left;cursor:pointer;display:flex}.list-meal__slot{flex:0 0 96px}.list-day__add .link-btn{min-height:32px}.install-banner{margin-bottom:var(--space-4);max-width:640px}.results{margin-top:var(--space-1);flex-direction:column;gap:2px;display:flex}.results--actions{padding-top:var(--space-3);border-top:1px solid var(--line)}.result{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);display:flex}.result--active{background:var(--brand-soft)}.result__main{align-items:center;gap:var(--space-3);min-width:0;min-height:56px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:0;flex:1 1 0;display:flex}.results--actions .result__main{color:var(--brand)}.result__meta{display:block}.result__adapt{min-height:36px;margin-right:var(--space-2)}.result .icon{color:var(--brand)}.chip--action{min-height:36px}.kbd-hints{margin-top:auto}kbd{border:1px solid var(--line-strong);min-width:20px;font:inherit;text-align:center;color:var(--ink);border-bottom-width:2px;border-radius:6px;padding:0 6px;font-size:11px;line-height:18px;display:inline-block}.dish-list{border-top:1px solid var(--line);flex-direction:column;display:flex}.dish-row{align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-2) 0;border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;display:flex}.dish-row__plain{color:var(--ink-muted);font-style:italic;font-weight:500}.dish-row__badges{gap:var(--space-2);align-items:center;margin-top:2px;display:flex}.dish-row__badges:empty{display:none}.switch-row{min-height:var(--tap);cursor:pointer}.ing-list{flex-direction:column;display:flex}.ing-row{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line);min-height:52px;display:flex}.ing-row__qty{align-items:center;gap:var(--space-2);flex:0 0 132px;display:inline-flex}.ing-row__input{width:76px;min-height:40px;padding:0 var(--space-2);text-align:right;font-size:15px;font-weight:600}.dish-more>.stack{padding-top:var(--space-3)}@media (width<=899px){.planning{padding:var(--space-4)}.toolbar__title{min-width:0;font-size:16px;line-height:22px;font-family:var(--font-sans);color:var(--ink-muted);flex:auto;font-weight:600}.toolbar__jump,.toolbar .fm-btn--ghost{display:none}}.line-settings{padding-top:var(--space-3);border-top:1px solid var(--line)}.shopping{gap:var(--space-8);flex-wrap:wrap;align-items:flex-start;display:flex}.shopping__list{gap:var(--space-4);flex-direction:column;flex:999 520px;min-width:0;display:flex}.shopping__side{gap:var(--space-3);flex-direction:column;flex:300px;max-width:380px;display:flex}.shopping__count{font-size:14px;font-weight:600}.shopping__count strong{color:var(--done)}.shopping__progress{appearance:none;border-radius:var(--radius-full);background:var(--line);border:0;width:100%;height:6px;overflow:hidden}.shopping__progress::-webkit-progress-bar{background:var(--line)}.shopping__progress::-webkit-progress-value{background:var(--done);border-radius:var(--radius-full)}.shopping__progress::-moz-progress-bar{background:var(--done)}.shopping__block{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-raised);overflow:hidden}.aisle{align-items:baseline;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-2);font-size:18px;font-weight:700;line-height:24px;display:flex}.aisle span{color:var(--ink-muted);font-size:12px;font-weight:500;line-height:16px}.item__tick{width:28px;min-height:var(--tap);cursor:pointer;place-items:center;display:grid;position:relative}.item__tick input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.item__tick input:focus-visible+.fm-item__check{box-shadow:var(--focus-ring)}.item__body{min-width:0;min-height:var(--tap);text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.item__body .fm-item__name{display:block}.fold{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-raised);overflow:hidden}.fold summary{align-items:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-4);background:var(--surface-sunken);cursor:pointer;font-weight:700;display:flex}.fold .fm-item:last-child{border-bottom:0}.offline-note{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunken);font-size:14px;line-height:20px;display:flex}.offline-note .icon{color:var(--ink-muted)}.meal-toggle{border-bottom:1px solid var(--line);cursor:pointer;min-height:52px;padding:6px 0}.meal-toggle__dishes{display:block}@media (width<=899px){.shopping{gap:var(--space-4)}.shopping__side{order:2;max-width:none}}
