:root{--ground:#fff;--surface:#f4f4f1;--raised:#fff;--active:#e8e8e4;--border:#e2e2dd;--rule:#e8e8e3;--control:#d3d3cd;--text:#1f201d;--muted:#5f5f5c;--faint:#6b6b68;--accent:#1b6e66;--primary:#1f201d;--primary-ink:#fff;--positive:#2e7d32;--negative:#b42318;--warning:#92400e;--pill-positive-bg:#dcfae5;--pill-positive-ink:#04250e;--pill-negative-bg:#fdecea;--pill-negative-ink:#7a1d14;--pill-warning-bg:#fffbeb;--pill-warning-ink:#92400e;--pill-neutral-bg:#e8e8e4;--pill-neutral-ink:#3d3d3a;--pill-warning-border:#fde68a;--accent-ink:#fff;--negative-ink:#fff;--accent-tint:#dcebe8;--primary-hover:#3a3b37;--primary-disabled:#8a8a86;--primary-disabled-ink:#fff;--primary-ink-muted:#d8d8d4;--shadow-float:#1f201d14;--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5 9.5 17 19 7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5l3-3' fill='none' stroke='%235f5f5c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font:"Instrument Sans", Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Instrument Serif", Georgia, "Times New Roman", serif;--fs-title:24px;--fs-greeting:48px;--fs-section:14px;--fs-kpi:32px;--fs-body:14px;--fs-small:12px;--sidebar-width:224px;--page-width:1100px;--pad:20px;--gap:16px;--card-pad:20px;--radius-card:22px;--radius-inner:14px;--radius-control:999px;--control-height:38px;--row-height:63px;--nav-row:32px;--ease-out:cubic-bezier(.22, 1, .36, 1);--t-press:.12s;--t-hover:.15s;--t-ui:.2s}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--ground:#151514;--surface:#1f1f1d;--raised:#2a2a28;--active:#30302d;--border:#2d2d2a;--rule:#282826;--control:#4b4b47;--text:#f1f1ec;--muted:#b3b3ad;--faint:#93938e;--accent:#62c2b5;--primary:#f1f1ec;--primary-ink:#151514;--positive:#3fc07a;--negative:#ef6b82;--warning:#e0a94a;--pill-positive-bg:#172a1d;--pill-positive-ink:#6fd79a;--pill-negative-bg:#2c1a20;--pill-negative-ink:#f08a9c;--pill-warning-bg:#2b2414;--pill-warning-ink:#f1c572;--pill-neutral-bg:#30302d;--pill-neutral-ink:#c9c9c3;--pill-warning-border:#4a3d1a;--accent-ink:#0d1f1c;--negative-ink:#1c0b0f;--accent-tint:#1d3330;--primary-hover:#d9d9d3;--primary-disabled:#5c5c58;--primary-disabled-ink:#c8c8c3;--primary-ink-muted:#5f5f5c;--shadow-float:#0006;--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5 9.5 17 19 7' fill='none' stroke='%23151514' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5l3-3' fill='none' stroke='%23b3b3ad' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#151514;--surface:#1f1f1d;--raised:#2a2a28;--active:#30302d;--border:#2d2d2a;--rule:#282826;--control:#4b4b47;--text:#f1f1ec;--muted:#b3b3ad;--faint:#93938e;--accent:#62c2b5;--primary:#f1f1ec;--primary-ink:#151514;--positive:#3fc07a;--negative:#ef6b82;--warning:#e0a94a;--pill-positive-bg:#172a1d;--pill-positive-ink:#6fd79a;--pill-negative-bg:#2c1a20;--pill-negative-ink:#f08a9c;--pill-warning-bg:#2b2414;--pill-warning-ink:#f1c572;--pill-neutral-bg:#30302d;--pill-neutral-ink:#c9c9c3;--pill-warning-border:#4a3d1a;--accent-ink:#0d1f1c;--negative-ink:#1c0b0f;--accent-tint:#1d3330;--primary-hover:#d9d9d3;--primary-disabled:#5c5c58;--primary-disabled-ink:#c8c8c3;--primary-ink-muted:#5f5f5c;--shadow-float:#0006;--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5 9.5 17 19 7' fill='none' stroke='%23151514' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5l3-3' fill='none' stroke='%23b3b3ad' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--ground);color:var(--text);font:var(--fs-body)/20px var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p,figure,ul,ol,dl,dd,fieldset{margin:0}fieldset{border:0;min-width:0;padding:0}legend{padding:0;font-weight:500}ul,ol{padding:0;list-style:none}img,svg,video,canvas{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button,a,label,input,select,textarea,summary{touch-action:manipulation}button:disabled{cursor:default}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.num,table,output{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.meta{color:var(--muted);font-size:var(--fs-small);line-height:16px}.sub{color:var(--muted)}.error{color:var(--negative)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}h2{font-size:var(--fs-section);font-weight:500;line-height:20px}h3{font-size:var(--fs-body);font-weight:500;line-height:20px}.app{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100svh;display:grid}.sidebar{flex-direction:column;height:100svh;padding:24px 12px 20px;display:flex;position:sticky;top:0;overflow:auto}.brand{color:var(--text);align-items:center;gap:10px;font-weight:500;display:inline-flex}.brand .mark{color:var(--accent);flex:none}.sidebar-brand{padding:0 8px}.scope{color:var(--muted);font-size:var(--fs-small);margin:6px 8px 24px;line-height:16px}.sidebar nav{gap:2px;display:grid}.group-label{font-size:var(--fs-small);color:var(--faint);margin:24px 8px 6px;line-height:16px}.nav-item{height:var(--nav-row);color:var(--muted);transition:background-color var(--t-hover) ease, color var(--t-hover) ease;border-radius:8px;align-items:center;gap:10px;padding:0 8px;display:flex}.nav-item svg{flex:none}@media (hover:hover){.nav-item:hover{background:var(--surface);color:var(--text)}}.nav-item[aria-current=page]{background:var(--active);color:var(--text)}.sidebar .bottom{gap:8px;margin-top:auto;padding:0 8px;display:grid}.user-row{color:var(--muted);font-size:var(--fs-small);align-items:center;gap:10px;min-width:0;display:flex}a.user-row[aria-current=page]{color:var(--text)}@media (hover:hover){a.user-row:hover{color:var(--text)}}.avatar{background:var(--accent-tint);width:24px;height:24px;color:var(--accent);font-weight:500;font-size:var(--fs-small);border-radius:50%;flex:none;place-items:center;display:grid}.topbar,.menu-toggle{display:none}.canvas{min-width:0;padding:36px var(--pad) 96px}.page{max-width:var(--page-width);margin:0 auto}.title-row{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.title-row h1{font-size:var(--fs-title);letter-spacing:-.01em;font-weight:500;line-height:1.2}.title-row .sub{margin-top:6px}.title-row .actions,.week-nav{flex:none;gap:8px;display:flex}.title-row>.btn{flex:none;margin-top:4px}.crumb{color:var(--muted);font-size:var(--fs-small);margin-bottom:8px;line-height:16px}@media (hover:hover){.crumb a:hover{color:var(--text);text-underline-offset:3px;text-decoration:underline}}.description{max-width:62ch;margin-top:10px}.inline-link{color:var(--text);text-underline-offset:3px;text-decoration:underline}.home-title{align-items:flex-end;margin-bottom:40px}.title-row h1.greeting{font:400 var(--fs-greeting)/1.05 var(--font-serif);letter-spacing:-.01em}.finding{color:var(--muted);max-width:58ch;margin-top:12px;font-size:16px;line-height:24px}.home-search{margin-top:0;margin-bottom:40px}.home-search+.section{margin-top:0}.search-box{align-items:center;max-width:560px;display:flex;position:relative}.search-icon{color:var(--muted);pointer-events:none;position:absolute;left:16px}.search-box .input{appearance:none;height:46px;padding:0 76px 0 44px;font-size:15px}.search-box .input:focus{outline:2px solid var(--accent);outline-offset:2px}.search-box .input::-webkit-search-cancel-button{display:none}.search-kbd{border:1px solid var(--control);background:var(--surface);min-width:22px;height:22px;color:var(--muted);font:500 var(--fs-small)/1 var(--font);border-radius:6px;place-items:center;padding:0 6px;display:inline-grid;position:absolute;right:14px}.search-clear{height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 12px;font-weight:500;position:absolute;right:8px}@media (hover:hover){.search-clear:hover{background:var(--surface);color:var(--text)}}.search-results{max-width:560px;margin-top:12px}.search-count{margin-bottom:8px}.search-hit{border-radius:var(--radius-inner);margin:0 -14px;padding:0 14px}.search-hit+.search-hit .row{border-top:1px solid var(--rule)}.search-hit.active{background:var(--active)}.search-hit.active .row,.search-hit.active+.search-hit .row{border-top-color:#0000}.search-more{margin-top:10px}.section{margin-top:40px}.section:first-of-type{margin-top:0}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.grid{gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.grid.top{align-items:start}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-12{grid-column:span 12}.panel{background:var(--surface);border-radius:var(--radius-card);padding:var(--card-pad);min-width:0}.panel>header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.panel>h2{margin-bottom:6px}.list-panel{padding:6px 20px}.recipe-main,.recipe-side{gap:var(--gap);align-content:start;display:grid}.card-link{color:var(--text);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:2px;padding:0;font-weight:500;display:inline-flex}.card-link:after{content:"";width:12px;height:12px;-webkit-mask:var(--chevron) center / 12px no-repeat;-webkit-mask:var(--chevron) center / 12px no-repeat;mask:var(--chevron) center / 12px no-repeat;background:currentColor;flex:none}@media (hover:hover){.card-link:hover{text-decoration:underline}}.card-link:disabled{color:var(--muted);text-decoration:none}:root{--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4.5 2.5 8 6l-3.5 3.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.album{height:100%;transition:background-color var(--t-hover) ease;flex-direction:column;gap:12px;padding:8px 8px 14px;display:flex}@media (hover:hover){.album:hover{background:var(--active)}}.album-cover{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-inner);background:var(--active);width:100%}.col-6 .album-cover{aspect-ratio:2}.album-titles{aspect-ratio:4/3;border-radius:var(--radius-inner);background:var(--raised);color:var(--muted);align-content:end;gap:4px;padding:12px 10px;display:grid}.col-6 .album-titles{aspect-ratio:2}.album-foot{justify-content:space-between;align-items:baseline;gap:8px;padding:0 8px;display:flex}.album-name{font-weight:500}.album-wide{flex-direction:row;align-items:stretch}.album-wide .album-cover,.album-wide .album-titles{aspect-ratio:2;width:40%}.album-wide .album-foot{flex-direction:column;justify-content:center}.album-panel{padding:8px 20px 12px}.album-groups{columns:2;column-gap:40px}.album-group{break-inside:avoid;padding:8px 0 12px}.album-group-label{font-size:var(--fs-small);padding:8px 0 2px;font-weight:400;line-height:16px}.album-panel .album-row{min-height:40px;padding:4px 0}.album-group li+li .album-row{border-top:1px solid var(--rule)}.album-row .row-title{flex:1;font-weight:500}@media (hover:hover){.album-row:hover .row-title{text-underline-offset:3px;text-decoration:underline}}.album-row .row-right{color:var(--muted);font-size:var(--fs-body)}.card{background:var(--surface);border-radius:var(--radius-card);height:100%;transition:background-color var(--t-hover) ease;flex-direction:column;padding:8px;display:flex}@media (hover:hover){.card:hover{background:var(--active)}}.card-cover{aspect-ratio:4/3;border-radius:var(--radius-inner);background:var(--active);overflow:hidden}.card-cover img{object-fit:cover;width:100%;height:100%}.card-cover-empty{background:var(--raised);width:100%;height:100%;display:block}.card-body{gap:2px;padding:12px 8px 8px;display:grid}.card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:40px;font-weight:500;display:-webkit-box;overflow:hidden}.card-body .sub{font-size:13px;line-height:18px}.row{align-items:center;gap:14px;min-height:64px;padding:8px 0;display:flex}.row+.row{border-top:1px solid var(--rule)}.row-main{flex:1;gap:2px;min-width:0;display:grid}.row-title{font-weight:500}.row-main .sub{font-size:var(--fs-small);line-height:16px}.row-right{color:var(--muted);font-size:var(--fs-small);flex:none}.thumb{object-fit:cover;background:var(--active);border-radius:8px;flex:none;width:48px;height:48px;display:block}.thumb-sm{border-radius:6px;width:36px;height:36px}@media (hover:hover){.recipe-row:hover .row-title{text-underline-offset:3px;text-decoration:underline}}.pills{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.pill{height:24px;font-size:var(--fs-small);background:var(--pill-neutral-bg);color:var(--pill-neutral-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-weight:500;display:inline-flex}@media (hover:hover){a.pill:hover{background:var(--control)}}.filters{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:20px;display:flex}.search{flex:260px;max-width:360px}.search .input{width:100%}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--control);background:var(--ground);height:32px;color:var(--text);white-space:nowrap;transition:background-color var(--t-hover) ease;border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.chip .num{color:var(--muted)}@media (hover:hover){.chip:hover{background:var(--surface)}}.chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.chip[aria-pressed=true] .num{color:var(--primary-ink-muted)}.chip-check{border:1px solid var(--control);background:var(--ground);cursor:pointer;border-radius:999px;align-items:center;height:32px;padding:0 12px;display:inline-flex}.chip-check input{opacity:0;width:1px;height:1px;position:absolute}.chip-check:has(input:checked){background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.chip-check:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.btn{height:var(--control-height);border-radius:var(--radius-control);border:1px solid var(--control);background:var(--ground);color:var(--text);cursor:pointer;white-space:nowrap;transition:background-color var(--t-hover) ease, transform var(--t-press) var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:500;display:inline-flex}@media (hover:hover){.btn:hover{background:var(--surface)}}.btn:active{background:var(--surface);transform:translateY(1px)}.btn.primary:active{background:var(--primary-hover)}.danger-btn:active{background:var(--pill-negative-bg)}.btn:disabled{color:var(--muted);background:var(--surface);border-color:var(--border);transform:none}.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}@media (hover:hover){.btn.primary:hover{background:var(--primary-hover)}}.btn.primary:disabled{background:var(--primary-disabled);border-color:var(--primary-disabled);color:var(--primary-disabled-ink)}.btn.ghost{background:0 0;border-color:#0000}@media (hover:hover){.btn.ghost:hover{background:var(--surface)}}.btn[aria-current=page]{background:var(--active);border-color:var(--active)}.danger-btn{color:var(--negative);border-color:var(--control)}@media (hover:hover){.danger-btn:hover{background:var(--pill-negative-bg)}}.icon-btn{width:32px;height:32px;color:var(--muted);transition:background-color var(--t-press) ease;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.icon-btn:active{background:var(--active);color:var(--text)}@media (hover:hover){.icon-btn:hover{background:var(--active);color:var(--text)}}.field{gap:8px;min-width:0;display:grid}.field>span:first-child,.field>legend{font-weight:500}.field .hint{color:var(--muted);font-size:var(--fs-small);font-weight:400;line-height:16px}.input{height:var(--control-height);border:1px solid var(--control);border-radius:var(--radius-control);background:var(--ground);width:100%;min-width:0;padding:0 14px}.input::placeholder{color:var(--faint)}select.input{appearance:none;background:var(--ground) var(--select-chevron) no-repeat right 14px center / 12px;padding-right:36px}.textarea{border-radius:var(--radius-inner);resize:vertical;height:auto;padding:12px 14px;line-height:20px}.file{padding:10px 0;display:block}.file::file-selector-button{border:1px solid var(--control);background:var(--ground);height:34px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;margin-right:12px;padding:0 14px;font-weight:500}.form-foot{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.notice{border-radius:var(--radius-inner);background:var(--pill-warning-bg);border:1px solid var(--pill-warning-border);color:var(--pill-warning-ink);font-size:var(--fs-small);margin-top:12px;padding:10px 14px;line-height:16px}.segmented{background:var(--surface);border-radius:999px;width:max-content;max-width:100%;padding:3px;display:inline-flex}.segmented button{height:32px;color:var(--muted);transition:background-color var(--t-hover) ease, color var(--t-hover) ease;background:0 0;border:0;border-radius:999px;padding:0 14px;font-weight:500}.segmented button[aria-pressed=true]{background:var(--raised);color:var(--text)}.stepper{height:var(--control-height);border:1px solid var(--control);background:var(--ground);border-radius:999px;align-items:center;display:inline-flex}.stepper button{width:38px;height:36px;color:var(--text);background:0 0;border:0;border-radius:999px;place-items:center;display:grid}@media (hover:hover){.stepper button:hover{background:var(--surface)}}.stepper button:disabled{color:var(--control);background:0 0}.stepper output{text-align:center;min-width:96px;padding:0 4px;font-weight:500}.controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ing-section+.ing-section{margin-top:12px}.ing-group{margin:4px 0 2px;font-weight:500}.ing{grid-template-columns:96px minmax(0,1fr);align-items:baseline;gap:14px;min-height:36px;padding:8px 0;display:grid}.ing+.ing{border-top:1px solid var(--rule)}.ing-amt{text-align:right;white-space:nowrap;font-weight:500}.ing-item{min-width:0}.ing.checkable{display:block}.ing-check{cursor:pointer;grid-template-columns:22px 96px minmax(0,1fr);align-items:baseline;gap:14px;display:grid}.ing.done .ing-item,.ing.done .ing-amt{color:var(--muted);text-decoration:line-through}.steps{gap:14px;padding-left:28px;list-style:decimal;display:grid}.steps li{padding-left:6px}.steps li::marker{color:var(--muted);font-variant-numeric:tabular-nums}.steps p{line-height:22px}.steps-tools{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;padding-top:14px;display:flex}.steps-tools p{flex-basis:100%}.steps-tools .meta{flex-basis:auto}.step-time{align-items:center;gap:4px;margin-top:4px;display:inline-flex}.label h2{margin-bottom:4px}.label-sub{color:var(--muted);font-size:var(--fs-small);margin-bottom:14px;line-height:16px}.label-cal{border-top:1px solid var(--control);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding:12px 0;font-weight:500;display:flex}.label-cal .num{font-size:var(--fs-kpi);letter-spacing:-.01em;font-weight:400;line-height:1}.label-rows{display:grid}.label-row{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding:8px 0;display:flex}.label-row dd small{font-size:var(--fs-small);color:var(--muted);margin-left:3px}.label-conf{margin-top:10px}.label-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.picture{padding:8px}.picture img{border-radius:var(--radius-inner);width:100%}.picture figcaption{padding:10px 8px 4px}.shots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.shots .zoom{border-radius:8px}.zoom{cursor:zoom-in;border-radius:var(--radius-inner);background:0 0;border:0;width:100%;padding:0;display:block;overflow:hidden}.zoom img{width:100%;display:block}.picture-zoom img{object-fit:cover;object-position:top;max-height:520px}.shots .zoom img{aspect-ratio:3/4;object-fit:cover;object-position:top;border-radius:8px}.lightbox{color:#fff;cursor:zoom-out;background:#1f201deb;border:0;width:100vw;max-width:none;height:100svh;max-height:none;margin:0;padding:0}.lightbox::backdrop{background:0 0}.lightbox-body{cursor:default;grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:8px;height:100%;margin:0;padding:16px;display:grid}.lightbox-body img{object-fit:contain;border-radius:6px;width:auto;max-width:100%;height:auto;max-height:100%}.lightbox-body figcaption{color:#d8d8d4}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:fixed;top:12px;right:12px}@media (hover:hover){.lightbox-close:hover{background:#ffffff3d}}.modal{border-radius:var(--radius-card);background:var(--ground);width:min(100% - 32px,420px);color:var(--text);border:0;margin:auto;padding:0;box-shadow:0 24px 64px #00000047}.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f201d8c}.modal-body{gap:12px;padding:28px 24px 24px;line-height:22px;display:grid}.modal-title{font:400 28px/1.15 var(--font-serif);letter-spacing:-.01em;margin-bottom:4px}.modal-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.modal-actions .btn{min-width:140px}.import-mode{margin-bottom:4px}.batch{gap:20px;display:grid}.batch-stage{gap:10px;display:grid}.batch-bar h2{font-size:var(--fs-body);font-weight:500}.progress{background:var(--active);border-radius:999px;height:6px;overflow:hidden}.progress span{background:var(--accent);height:100%;transition:width var(--t-ui) ease;border-radius:999px;display:block}.spinner{border:2px solid var(--control);border-top-color:var(--accent);border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.batch-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.batch-actions{gap:8px;display:flex}.batch-list{display:grid}.batch-item{align-items:center;gap:14px;min-height:64px;padding:8px 0;display:flex}.batch-item+.batch-item{border-top:1px solid var(--rule)}.batch-item img{object-fit:cover;object-position:top;background:var(--surface);border-radius:8px;flex:none;width:48px;height:48px}.batch-text{flex:1;gap:2px;min-width:0;display:grid}.batch-title{font-weight:500}@media (hover:hover){a.batch-title:hover{text-underline-offset:3px;text-decoration:underline}}a.source-link{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--control);text-decoration-color:var(--control)}@media (hover:hover){a.source-link:hover{color:var(--text);text-decoration-color:currentColor}}.batch-item.reading img{opacity:.7}.batch-check{color:var(--accent);flex:none}.dropzone-off{opacity:.45}.dropzone{border:1px dashed var(--control);border-radius:var(--radius-inner);background:var(--surface);text-align:center;align-content:center;place-items:center;gap:6px;min-height:150px;padding:20px;display:grid;position:relative}.dropzone input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.dropzone:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.dropzone-text{font-weight:500}.dropzone .hint{max-width:36ch}.import-form{gap:24px;display:grid}.import-form .previews{margin-top:-8px}.plan-form,.edit-form,.add-item,.account-form{gap:16px;display:grid}.account-form{max-width:480px}.account-form .form-foot{margin-top:0}.account-panels{gap:var(--gap);max-width:480px;display:grid}.account-panels .account-form{max-width:none}.theme-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.theme-saved{min-width:48px}.confirm-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.confirm-row p{flex-basis:100%;margin-bottom:4px;font-weight:500}.btn.danger-fill{background:var(--negative);border-color:var(--negative);color:var(--negative-ink)}@media (hover:hover){.btn.danger-fill:hover{background:var(--negative);filter:brightness(.92)}}.plan-form-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}.field-narrow{max-width:140px}.import-note{margin-top:6px;line-height:20px}.previews{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:-4px;display:grid}.previews img{aspect-ratio:3/4;object-fit:cover;object-position:top;background:var(--surface);border-radius:8px;width:100%}.preview{position:relative}.preview-remove{background:var(--raised);width:28px;height:28px;color:var(--text);box-shadow:0 1px 3px var(--shadow-float);position:absolute;top:4px;right:4px}.import-status{align-items:center;gap:8px;display:inline-flex}.tag-group{gap:8px;margin-top:8px;display:grid}.cover-preview{border-radius:var(--radius-inner);object-fit:cover;width:100%;max-height:280px;margin:12px 0}.panel.danger{margin-top:0}.add-panel{margin-bottom:var(--gap)}.plan-form.inline{grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr) 100px auto;align-items:end;gap:12px;display:grid}.pick-meal-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.pick-or{font-size:var(--fs-small)}.plan-form.inline .plan-form-row{display:contents}.plan-form.inline .field-narrow{max-width:none}.plan-form.inline .form-foot{display:contents}.plan-form.inline .form-foot .btn{height:var(--control-height)}.plan-form.inline .form-foot span{grid-column:1/-1}.week{display:grid}.day{border-top:1px solid var(--rule);border-left:3px solid #0000;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:16px;min-height:64px;padding:8px 0 8px 13px;display:grid}.day:first-child{border-top:0}.day.today{border-left-color:var(--accent)}.day.today .day-name{color:var(--accent)}.day-label{gap:2px;display:grid}.day-name{font-weight:500}.day-date{font-size:var(--fs-small);line-height:16px}.day-entries{flex-wrap:wrap;gap:8px;display:flex}.entry{background:var(--raised);border-radius:10px;align-items:center;gap:10px;max-width:100%;min-height:48px;padding:6px 4px 6px 6px;display:inline-flex}.entry .thumb-sm{border-radius:6px;width:36px;height:36px}.entry-text{gap:1px;min-width:0;display:grid}.entry-title{white-space:nowrap;text-overflow:ellipsis;max-width:26ch;font-size:13px;font-weight:500;line-height:17px;overflow:hidden}@media (hover:hover){.entry-title:hover{text-underline-offset:3px;text-decoration:underline}}.entry-meta{font-size:var(--fs-small);color:var(--muted);line-height:15px}.entry .icon-btn{width:28px;height:28px}.entry{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y}.entry[draggable=true]{cursor:grab}.drag-handle{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block;overflow:hidden}.drag-handle img{object-fit:cover;width:100%;height:100%;display:block}.drag-ghost{z-index:40;background:var(--primary);color:var(--primary-ink);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;border-radius:10px;max-width:70vw;padding:8px 14px;font-size:13px;font-weight:500;position:fixed;overflow:hidden;transform:translate(-50%,-140%)}.entry.dragging{opacity:.5}.day.over{background:var(--active);border-radius:12px}.day.over .entry-empty{color:var(--text)}.entry-move{width:auto;height:32px;padding:0 30px 0 10px;font-size:13px}.entry-empty{font-size:var(--fs-small);line-height:16px}.title-actions{flex:none;align-items:flex-start;gap:8px;display:flex}.generate{text-align:right;justify-items:end;gap:6px;display:grid}.grocery-panel{gap:20px;display:grid}.aisles{columns:2;column-gap:40px}.aisle{break-inside:avoid;margin-bottom:20px}.aisle>header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.gitems{display:grid}.gitem{align-items:center;gap:12px;min-height:44px;padding:6px 0;display:flex}.gitem+.gitem{border-top:1px solid var(--rule)}.gitem-label{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.gname{gap:2px;min-width:0;display:grid}.gname .sub{font-size:13px;line-height:17px}.gqty{flex:none}.gitem.done .gname{color:var(--muted)}.gitem.done .gname>:first-child{text-decoration:line-through}.check{appearance:none;border:1.5px solid var(--control);background:var(--ground);width:22px;height:22px;transition:background-color var(--t-hover) ease;border-radius:7px;flex:none;place-items:center;margin:0;display:grid}.check:checked{background:var(--text);border-color:var(--text);background-image:var(--check-mark);background-position:50%;background-repeat:no-repeat;background-size:16px}.add-item{border-top:1px solid var(--control);padding-top:20px}.add-item.inline{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.add-item.inline .plan-form-row{display:contents}.add-item.inline .field-narrow{max-width:none}.add-item.inline .form-foot{display:contents}.add-item.inline .form-foot span,.add-item h2{grid-column:1/-1}.empty{border:1px dashed var(--control);border-radius:var(--radius-inner);color:var(--muted);text-align:center;padding:20px}.grid>.empty{grid-column:1/-1}.empty-steps{justify-items:center;gap:4px;display:grid}.empty-steps .form-foot{justify-content:center;margin-top:8px}.auth{place-items:center;min-height:100svh;padding:20px;display:grid}.auth-card{gap:12px;width:100%;max-width:400px;display:grid}.auth-brand{margin-bottom:20px}.auth-brand .brand-name{font-size:16px}.auth-title{font:400 32px/1.1 var(--font-serif);letter-spacing:-.01em}.auth-sub{margin-bottom:12px;line-height:20px}.auth-form{gap:16px;display:grid}.auth-actions{flex-wrap:wrap;gap:8px;display:flex}.auth-actions .btn{min-width:160px}.auth-switch{margin-top:4px}.auth-switch a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.cook{grid-template-rows:auto minmax(0,1fr) auto;min-height:100svh;display:grid}.cook-top{border-bottom:1px solid var(--rule);align-items:center;gap:16px;padding:12px 20px;display:flex}.cook-back{padding:0 10px}.cook-title{flex:1;min-width:0;font-size:16px;font-weight:500;line-height:20px}.cook-count{flex:none}.cook-main{outline:none;grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:48px;width:100%;max-width:1100px;margin:0 auto;padding:48px 20px 24px;display:grid}.cook-body{min-width:0}.cook-aside{gap:10px;display:grid;position:sticky;top:24px}.cook-aside img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-card);background:var(--surface);width:100%}.cook-progress{gap:4px;margin-bottom:20px;display:flex}.cook-progress li{flex:1;min-width:6px}.cook-progress button{background:var(--control);width:100%;height:4px;transition:background-color var(--t-ui) ease;border:0;border-radius:2px;padding:0;display:block}.cook-progress li.done button{background:var(--text)}.cook-progress li[aria-current=step] button{background:var(--accent)}@media (hover:hover){.cook-progress button:hover{background:var(--muted)}}.cook-card{background:var(--surface);border-radius:var(--radius-card);animation:cook-in .28s var(--ease-out);padding:32px 36px 36px}.cook-eyebrow{color:var(--muted);font-size:var(--fs-small);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:14px;margin-bottom:18px;font-weight:500;line-height:16px;display:flex}.cook-eyebrow-of{color:var(--faint);font-weight:400}.cook-eyebrow-time{background:var(--active);color:var(--text);text-transform:none;letter-spacing:0;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.cook-step{font:400 34px/1.3 var(--font-serif);letter-spacing:-.005em;max-width:30ch}.cook-gather .cook-step{margin-bottom:22px}.cook-gather .controls{margin-bottom:20px}.cook-uses{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.cook-uses li{background:var(--ground);border:1px solid var(--border);border-radius:999px;align-items:baseline;gap:6px;min-height:34px;padding:6px 14px;font-size:14px;line-height:20px;display:inline-flex}.cook-uses .num{font-weight:500}.timer{height:48px;margin-top:28px;padding:0 20px;font-size:16px}.timer.running{border-color:var(--accent);color:var(--accent)}.timer.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.cook-next{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--ground);width:100%;color:var(--muted);text-align:left;font:inherit;cursor:pointer;transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease, color var(--t-hover) ease;gap:6px;margin-top:16px;padding:18px 56px 20px 24px;display:grid;position:relative}@media (hover:hover){button.cook-next:hover{background:var(--surface);border-color:var(--control);color:var(--text)}}.cook-next-end{cursor:default;border-style:dashed;padding-right:24px}.cook-next-label{font-size:var(--fs-small);letter-spacing:.04em;text-transform:uppercase;font-weight:500;line-height:16px}.cook-next-label .num{text-transform:none;letter-spacing:0;color:var(--faint)}.cook-next-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:16px;line-height:24px;display:-webkit-box;overflow:hidden}.cook-next-arrow{color:var(--faint);transition:transform var(--t-hover) var(--ease-out);position:absolute;top:50%;right:22px;transform:translateY(-50%)}@media (hover:hover){button.cook-next:hover .cook-next-arrow{color:var(--text);transform:translate(3px,-50%)}}@keyframes cook-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cook-card{animation:none}}.cook-bottom{border-top:1px solid var(--rule);gap:12px;width:100%;max-width:800px;margin:0 auto;padding:16px 20px;display:flex}.cook-bottom .btn{flex:1;height:56px;font-size:16px}.cook-drawer{background:var(--surface);z-index:30;width:min(440px,100%);box-shadow:-8px 0 24px var(--shadow-float);padding:20px 24px 40px;position:fixed;top:0;bottom:0;right:0;overflow:auto}.cook-drawer-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cook-drawer .controls{margin-bottom:16px}@media (max-width:1100px){.cook-main{grid-template-columns:minmax(0,1fr)}.cook-aside{display:none}.day{grid-template-columns:120px minmax(0,1fr)}.plan-form.inline{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.plan-form.inline .pick-meal{grid-column:1/-1}.pick-meal-row{grid-template-columns:minmax(0,1fr)}.pick-or{display:none}.plan-form.inline .form-foot .btn{grid-column:1/-1}.aisles{columns:1}.add-item.inline{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.add-item.inline .form-foot .btn{grid-column:1/-1;justify-self:start}.col-3,.col-4{grid-column:span 6}.albums .col-4{grid-column:span 4}.col-5,.col-7,.col-8,.col-9,.recipe-grid .col-5,.recipe-grid .col-7{grid-column:span 12}.ing{grid-template-columns:88px minmax(0,1fr)}}@media (max-width:860px){.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.topbar{z-index:10;background:var(--ground);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;height:48px;padding:0 12px 0 16px;display:flex;position:sticky;top:0}.menu-toggle{height:36px;display:inline-flex}.sidebar{z-index:20;background:var(--ground);width:100%;height:auto;transition:transform var(--t-ui) var(--ease-out);padding:16px;position:fixed;inset:48px 0 0;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar-brand,.scope{display:none}.canvas{padding:20px 16px 72px}.grid>*{grid-column:1/-1}.album-groups{columns:1}.cards>*{grid-column:span 6}.title-row{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:20px}.title-row>.btn{align-self:flex-start;margin-top:0}.home-title{align-items:stretch}.title-row h1.greeting{font-size:36px}.auth-title{font-size:28px}.finding{font-size:15px;line-height:22px}.generate{text-align:left;justify-items:start}.title-actions{flex-wrap:wrap}.day{grid-template-columns:minmax(0,1fr);align-items:start;gap:8px}.day-label{align-items:baseline;gap:8px;display:flex}.entry-title{max-width:20ch}.day{grid-template-columns:minmax(0,1fr);gap:6px;padding-left:13px}.day-label{align-items:baseline;gap:8px;padding-top:0;display:flex}.day-long{display:none}.day-short{display:inline}.entry-meta{display:none}.ing{grid-template-columns:76px minmax(0,1fr);gap:12px}.ing-check{grid-template-columns:22px 76px minmax(0,1fr);gap:12px}.cook-main{padding:20px 16px 16px}.cook-progress{margin-bottom:14px}.cook-card{padding:22px 22px 26px}.cook-eyebrow{margin-bottom:14px}.cook-step{font-size:27px}.cook-uses{gap:6px;margin-top:18px}.cook-uses li{min-height:30px;padding:5px 12px;font-size:13px}.cook-next{margin-top:12px;padding:16px 48px 18px 20px}.cook-next-arrow{right:18px}.cook-next-text{-webkit-line-clamp:2;font-size:15px;line-height:22px}.cook-top{gap:10px;padding:10px 12px}.cook-top .btn span,.cook-count{display:none}.cook-bottom{padding:12px 16px}.plan-form-row{grid-template-columns:1fr 1fr}.field-narrow{max-width:none}}@media (pointer:coarse){.icon-btn:before{content:"";border-radius:50%;position:absolute;inset:-8px}.entry .icon-btn:before{inset:-10px}.search-clear{height:36px}}@media (max-width:480px){.segmented{width:100%;display:flex}.segmented button{flex:1}.controls .stepper{justify-content:space-between;width:100%}.cards>*{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}}.duplicate-notice{box-shadow:inset 3px 0 0 var(--pill-warning-ink);outline:none}.duplicate-notice>p{margin-top:4px}.duplicate-list{margin-top:8px;display:grid}.duplicate-list .row-main .sub+.sub{margin-top:0}.duplicate-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.batch-item.duplicate img,.batch-item.checking img{opacity:.7}.batch-item-actions{flex:none;align-items:center;gap:8px;display:flex}
