:root{color-scheme:light;--bg: #f6efe4;--bg-alt: #ede2d2;--bg-accent: rgba(15, 114, 104, .16);--surface: rgba(255, 251, 244, .76);--surface-strong: #fffaf1;--surface-muted: rgba(255, 251, 244, .58);--surface-tint: rgba(13, 22, 32, .04);--text: #18212b;--text-strong: #0c1520;--muted: #5d6874;--border: rgba(15, 23, 42, .1);--shadow: 0 28px 90px rgba(15, 23, 42, .12);--accent: #0f7268;--accent-strong: #0a5b52;--accent-soft: rgba(15, 114, 104, .14);--accent-contrast: #ffffff;--warm: #c86f2d;--success: #1b845f;--warning: #aa6b12;--danger: #b84f5c;--radius-xxl: 34px;--radius-xl: 26px;--radius-lg: 20px;--radius-md: 14px;--radius-sm: 10px;--font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;--font-body: "Aptos", "Trebuchet MS", "Segoe UI", system-ui, sans-serif;--page-width: min(1180px, calc(100vw - 2.5rem) )}:root[data-theme=dark]{color-scheme:dark;--bg: #07111a;--bg-alt: #0a1723;--bg-accent: rgba(110, 217, 205, .16);--surface: rgba(8, 15, 24, .78);--surface-strong: #0d1722;--surface-muted: rgba(8, 15, 24, .58);--surface-tint: rgba(255, 255, 255, .03);--text: #e7eef6;--text-strong: #f8fbff;--muted: #97a4b3;--border: rgba(255, 255, 255, .12);--shadow: 0 26px 90px rgba(0, 0, 0, .46);--accent: #6ed9cd;--accent-strong: #93eee2;--accent-soft: rgba(110, 217, 205, .16);--accent-contrast: #06131b;--warm: #f1b25c;--success: #70d4a3;--warning: #f1b25c;--danger: #ef7f8d}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--text);background:radial-gradient(circle at top left,rgba(15,114,104,.16),transparent 32%),radial-gradient(circle at bottom right,rgba(200,111,45,.15),transparent 25%),linear-gradient(160deg,var(--bg) 0%,var(--bg-alt) 100%);background-attachment:fixed;overflow-x:hidden}body:before,body:after{content:"";position:fixed;inset:auto;border-radius:999px;pointer-events:none;z-index:-1;filter:blur(10px)}body:before{width:26rem;height:26rem;top:-8rem;right:-6rem;background:radial-gradient(circle,rgba(15,114,104,.12) 0%,transparent 72%)}body:after{width:20rem;height:20rem;left:-8rem;bottom:-6rem;background:radial-gradient(circle,rgba(200,111,45,.14) 0%,transparent 70%)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}::selection{background:var(--accent-soft);color:var(--text-strong)}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);outline-offset:2px}.app-root{min-height:100vh;position:relative}.app-shell{width:var(--page-width);margin:0 auto;padding:1rem 0 3rem}.stack{display:grid;gap:1rem}.screen-shell{--shell-topbar-height: 0px;--shell-sticky-offset: .75rem;width:var(--page-width);margin:0 auto}.screen-shell>*{min-width:0}.page-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.9rem;padding:.75rem .9rem;border-radius:1.5rem;background:color-mix(in srgb,var(--surface) 86%,transparent);border:1px solid color-mix(in srgb,var(--border) 92%,transparent);box-shadow:0 18px 40px #0f172a14}.brand{display:inline-flex;align-items:center;gap:.9rem;min-width:0;padding:.2rem;border-radius:1rem}.brand:hover{background:color-mix(in srgb,var(--surface-tint) 78%,transparent)}.brand-mark{width:2.75rem;height:2.75rem;border-radius:1rem;position:relative;background:linear-gradient(145deg,var(--accent) 0%,var(--warm) 100%);box-shadow:var(--shadow);flex:none}.brand-mark:before,.brand-mark:after{content:"";position:absolute;border-radius:999px;top:.55rem;right:.55rem;bottom:.55rem;left:.55rem;border:1px solid rgba(255,255,255,.32)}.brand-mark:after{top:.95rem;right:.95rem;bottom:.95rem;left:.95rem;border-radius:.85rem;border-style:dashed}.brand-copy{display:grid;gap:.1rem}.brand-name{font-family:var(--font-display);font-size:1.2rem;line-height:1.05;color:var(--text-strong);letter-spacing:-.02em}.brand-tagline{color:var(--muted);font-size:.86rem;line-height:1.3}.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap;margin-left:auto}.toolbar-group{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.toolbar-label{padding-inline:.5rem .2rem;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em}.nav-hamburger{display:none;flex:none;width:3rem;height:3rem;padding:0;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);color:var(--text-strong)}.nav-hamburger.is-open{background:var(--surface-strong);box-shadow:var(--shadow)}.nav-hamburger-lines{display:grid;gap:.2rem;width:1.1rem}.nav-hamburger-lines span{display:block;height:2px;border-radius:999px;background:currentColor}.nav-drawer{display:none;align-content:start}.nav-drawer-panel{display:grid;align-content:start;gap:.85rem}.nav-drawer-section{display:grid;gap:.45rem}.nav-drawer-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.11em}.nav-drawer-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.nav-drawer-actions{display:grid;gap:.55rem}.nav-drawer-section--account{gap:.35rem}.nav-drawer-account{padding:.75rem .85rem;border-radius:1rem;background:var(--surface-muted);border:1px solid var(--border);color:var(--text-strong);font-weight:700;line-height:1.45;overflow-wrap:anywhere}.nav-drawer-item{width:100%;justify-content:center;min-height:2.8rem}@media (min-width: 769px){.nav-hamburger,.nav-drawer{display:none!important}}.surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xxl);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.surface--soft{background:linear-gradient(180deg,var(--surface),var(--surface-muted))}.surface--compact{border-radius:var(--radius-xl)}.surface-pad{padding:1.15rem}.hero-shell{position:relative;overflow:hidden}.hero-shell:after{content:"";position:absolute;inset:auto -6rem -7rem auto;width:18rem;height:18rem;border-radius:999px;background:radial-gradient(circle,rgba(18,117,108,.12),transparent 70%);pointer-events:none}.landing-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.95fr);gap:1rem;align-items:start}.hero{padding:clamp(1.35rem,3vw,2rem)}.hero-grid{display:grid;gap:1.35rem;position:relative;z-index:1}.eyebrow{display:inline-flex;align-items:center;width:fit-content;gap:.5rem;border-radius:999px;padding:.45rem .8rem;background:var(--accent-soft);color:var(--accent-strong);font-size:.86rem;font-weight:700;letter-spacing:.03em}.hero-title{margin:0;max-width:12ch;font-family:var(--font-display);font-size:clamp(2.75rem,5vw,5.2rem);line-height:.94;letter-spacing:-.05em;color:var(--text-strong)}.hero-subtitle{margin:0;max-width:62ch;color:var(--muted);font-size:1.03rem;line-height:1.7}.action-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.button{border:0;border-radius:999px;padding:.86rem 1.15rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease;text-decoration:none;color:inherit}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.58;transform:none}.button--primary{color:var(--accent-contrast);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%);box-shadow:0 18px 40px #12756c47}.button--secondary{color:var(--text-strong);background:var(--surface-strong);border:1px solid var(--border)}.button--ghost{color:var(--text);background:transparent;border:1px solid transparent}.button--pill{padding-inline:1rem}.button--active{background:var(--surface-strong);border-color:var(--border);box-shadow:var(--shadow)}.button--block{width:100%}.button-label{white-space:nowrap}.inline-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;max-width:100%;border-radius:999px;padding:.4rem .75rem;border:1px solid var(--border);background:var(--surface-tint);color:var(--muted);font-size:.84rem;font-weight:700;white-space:normal;overflow-wrap:anywhere}.chip--accent{color:var(--accent-strong);background:var(--accent-soft);border-color:transparent}.chip--success{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}.chip--warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 18%,transparent)}.chip--danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.feature-card{padding:1rem;display:grid;gap:.85rem;min-height:100%}.feature-number{width:2.3rem;height:2.3rem;border-radius:.85rem;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:800}.feature-title{margin:0;font-size:1.06rem;color:var(--text-strong)}.feature-copy{margin:0;color:var(--muted);line-height:1.6}.feature-footer{display:flex;align-items:center;justify-content:space-between;gap:.65rem;flex-wrap:wrap}.auth-card{padding:1rem;display:grid;gap:1rem}.auth-heading{display:grid;gap:.4rem}.auth-title{margin:0;font-size:1.55rem;font-family:var(--font-display);letter-spacing:-.03em;color:var(--text-strong)}.auth-copy{margin:0;color:var(--muted);line-height:1.6}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.35rem;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border)}.segmented-button{border-radius:999px;padding:.8rem 1rem;background:transparent;border:1px solid transparent;color:var(--muted);font-weight:700}.segmented-button.is-active{background:var(--surface-strong);color:var(--text-strong);box-shadow:var(--shadow)}.form-grid{display:grid;gap:.9rem}.field{display:grid;gap:.42rem}.field-label{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.9rem;font-weight:700;color:var(--text-strong)}.field-help{color:var(--muted);font-size:.84rem;line-height:1.45}.control,.select,.textarea{width:100%;border-radius:1rem;border:1px solid var(--border);background:var(--surface-strong);color:var(--text-strong);padding:.9rem 1rem;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.control:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.textarea{min-height:7rem;resize:vertical}.helper-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.helper-copy{color:var(--muted);font-size:.88rem;line-height:1.55}.alert{border-radius:1rem;border:1px solid var(--border);padding:.9rem 1rem;background:var(--surface-tint);color:var(--text-strong)}.alert--success{background:color-mix(in srgb,var(--success) 10%,var(--surface-strong));border-color:color-mix(in srgb,var(--success) 36%,var(--border))}.alert--danger{background:color-mix(in srgb,var(--danger) 12%,var(--surface-strong));border-color:color-mix(in srgb,var(--danger) 36%,var(--border))}.alert--warning{background:color-mix(in srgb,var(--warning) 14%,var(--surface-strong));border-color:color-mix(in srgb,var(--warning) 36%,var(--border))}.loading-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.95rem;align-items:start;padding:1rem;border-radius:1.25rem;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 60%,transparent),transparent 68%);border:1px solid var(--border)}.spinner{width:2.8rem;height:2.8rem;border-radius:999px;border:4px solid var(--accent-soft);border-top-color:var(--accent);animation:spin 1s linear infinite}.progress-stack{display:grid;gap:.45rem}.progress-line{height:.7rem;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent-soft) 60%,transparent),color-mix(in srgb,var(--accent) 24%,transparent),color-mix(in srgb,var(--accent-soft) 60%,transparent));background-size:200% 100%;animation:shimmer 1.8s linear infinite}.progress-line:nth-child(2){width:88%}.progress-line:nth-child(3){width:72%}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;min-width:0}.section-title-group{display:grid;gap:.35rem;min-width:0}.section-title{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,2.8vw,2.35rem);letter-spacing:-.04em;color:var(--text-strong)}.section-divider-label{margin:0;font-family:var(--font-display);font-size:clamp(1.1rem,2vw,1.4rem);letter-spacing:-.02em;color:var(--muted);font-weight:600;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.section-copy{margin:0;max-width:70ch;color:var(--muted);line-height:1.65;min-width:0;overflow-wrap:anywhere}.section-note{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.45rem .75rem;background:var(--surface-muted);border:1px solid var(--border);color:var(--muted);font-size:.85rem}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.85rem}.summary-card{padding:1rem;display:grid;gap:.35rem}.summary-label{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.summary-value{font-size:2rem;font-weight:800;letter-spacing:-.05em;color:var(--text-strong)}.summary-detail{color:var(--muted);font-size:.88rem;line-height:1.5}.section-tabs{display:flex;align-items:center;gap:.55rem;padding:.4rem;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow-x:auto}.section-tab{flex:none;white-space:nowrap;border-radius:999px;padding:.8rem 1rem;border:1px solid transparent;color:var(--muted)}.section-tab.is-active{background:var(--surface-strong);color:var(--text-strong);border-color:var(--border);box-shadow:var(--shadow)}.dashboard-grid{display:grid;gap:1rem;min-width:0}.dashboard-overview-card,.dashboard-content-shell{min-width:0}.content-grid{display:grid;gap:1rem;min-width:0}.content-grid--two{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}.content-grid--recipe-list{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.panel-title{margin:0;font-size:1.15rem;color:var(--text-strong)}.panel-copy{margin:0;color:var(--muted);line-height:1.5}.panel-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;min-width:0}.import-card,.list-card,.planner-card,.shopping-card,.tutorial-card,.recipe-card,.product-card,.job-card{display:grid;gap:.9rem;min-width:0}.recipe-card,.product-card,.job-card{padding:1rem;min-height:100%}.recipe-cover,.product-cover,.tutorial-cover{width:100%;aspect-ratio:16 / 10;border-radius:1.1rem;object-fit:cover;border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 55%,transparent),color-mix(in srgb,var(--warm) 22%,transparent))}.recipe-meta,.product-meta,.job-meta,.shopping-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.meta-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;color:var(--muted);font-size:.88rem}.meta-dot{width:.25rem;height:.25rem;border-radius:999px;background:currentColor;opacity:.5}.recipe-title,.product-title,.job-title,.shopping-title{margin:0;font-size:1.05rem;color:var(--text-strong);min-width:0;overflow-wrap:anywhere}.recipe-copy,.product-copy,.job-copy,.shopping-copy{margin:0;color:var(--muted);line-height:1.6;min-width:0;overflow-wrap:anywhere}.recipe-ingredients,.product-details,.job-details,.shopping-details{display:grid;gap:.6rem}.detail-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;color:var(--muted);min-width:0}.detail-label{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em}.detail-value{color:var(--text-strong);font-weight:700;min-width:0;overflow-wrap:anywhere}.list-stack{display:grid;gap:.75rem}.job-stack{display:grid;gap:.7rem}.job-row,.shopping-row,.plan-row,.step-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;padding:.85rem .95rem;border-radius:1rem;border:1px solid var(--border);background:var(--surface-strong)}.job-row--compact,.shopping-row--compact,.plan-row--compact{flex-direction:column;align-items:stretch}.job-row--compact .job-meta,.shopping-row--compact .shopping-meta,.plan-row--compact .plan-meta{justify-content:space-between}.job-status,.import-status,.plan-status{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.34rem .7rem;font-size:.82rem;font-weight:700}.job-status--queued,.import-status--queued{color:var(--warning);background:color-mix(in srgb,var(--warning) 16%,transparent)}.job-status--running,.import-status--running{color:var(--accent-strong);background:var(--accent-soft)}.job-status--succeeded,.import-status--succeeded{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}.job-status--failed,.import-status--failed{color:var(--danger);background:color-mix(in srgb,var(--danger) 15%,transparent)}.recipe-preview,.product-preview,.tutorial-preview{display:grid;gap:.8rem}.recipe-intro,.product-intro,.tutorial-intro{display:grid;gap:.45rem}.recipe-grid,.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.9rem}.recipe-snippet{margin:0;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.recipe-ingredients-list{display:grid;gap:.45rem}.recipe-ingredient{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;color:var(--muted);font-size:.92rem}.recipe-ingredient strong,.recipe-ingredient span{color:var(--text)}.recipe-ingredient strong{font-weight:700}.product-price{font-size:1.35rem;font-weight:800;letter-spacing:-.04em;color:var(--text-strong)}.product-source,.recipe-source{font-size:.86rem;color:var(--muted);word-break:break-word}.product-thumb,.recipe-thumb{display:grid;place-items:center;width:100%;aspect-ratio:16 / 10;border-radius:1.15rem;border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 60%,transparent),transparent 55%),linear-gradient(180deg,var(--surface-strong),var(--surface-muted));color:var(--muted);font-family:var(--font-display);font-size:clamp(1.3rem,2vw,2rem);text-align:center;padding:1rem}.week-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:1rem}.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.8rem}.day-card{display:grid;gap:.8rem;min-height:100%;padding:1rem}.day-name{font-size:.84rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.day-entries{display:grid;gap:.6rem}.day-empty{min-height:6rem;display:grid;place-items:center;text-align:center;padding:.85rem;border-radius:1rem;border:1px dashed var(--border);color:var(--muted);background:var(--surface-tint)}.plan-row{display:grid;gap:.55rem}.plan-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.plan-title{margin:0;color:var(--text-strong);font-weight:700}.shopping-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:1rem}.shopping-amount{font-size:1rem;font-weight:800;color:var(--text-strong)}.shopping-match{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;border-radius:999px;padding:.4rem .7rem;font-size:.82rem;font-weight:700;background:var(--surface-tint);border:1px solid var(--border);color:var(--muted)}.shopping-match--good{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);border-color:transparent}.shopping-match--search{color:var(--warm);background:color-mix(in srgb,var(--warm) 15%,transparent);border-color:transparent}.export-card{padding:1rem;display:grid;gap:.85rem}.export-lines{display:grid;gap:.5rem}.export-line{border-radius:.95rem;border:1px dashed var(--border);padding:.75rem .85rem;background:var(--surface-strong);color:var(--text-strong)}.link-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.link-button{display:inline-flex;align-items:center;gap:.35rem;color:var(--accent-strong);font-weight:700}.tutorial-layout{display:grid;grid-template-columns:minmax(280px,.34fr) minmax(0,.66fr);gap:1rem;align-items:start}.chapter-nav{display:grid;gap:.55rem;position:sticky;top:1rem}.chapter-button{width:100%;text-align:left;padding:.95rem 1rem;border-radius:1rem;border:1px solid transparent;background:var(--surface-muted);color:var(--muted)}.chapter-number{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:.65rem;background:var(--accent-soft);color:var(--accent-strong);margin-right:.65rem;font-weight:800}.chapter-panel{padding:1.15rem;display:grid;gap:1rem}.chapter-title{margin:0;font-family:var(--font-display);font-size:clamp(1.7rem,2.7vw,2.3rem);line-height:1.05;letter-spacing:-.04em;color:var(--text-strong)}.chapter-summary{margin:0;color:var(--muted);line-height:1.65}.chapter-steps{display:grid;gap:.65rem}.step-row{align-items:flex-start}.step-index{width:1.8rem;height:1.8rem;border-radius:999px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:800;flex:none}.step-copy{display:grid;gap:.2rem;color:var(--muted);line-height:1.55}.chapter-api{display:inline-flex;align-items:center;gap:.45rem;width:fit-content;padding:.42rem .75rem;border-radius:999px;background:var(--surface-tint);border:1px solid var(--border);color:var(--muted);font-size:.84rem;font-weight:700}.media-card{padding:.85rem;display:grid;gap:.55rem}.media-image{width:100%;border-radius:1rem;aspect-ratio:16 / 10;object-fit:cover;border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 55%,transparent),color-mix(in srgb,var(--warm) 18%,transparent))}.media-caption{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}.media-fallback{width:100%;aspect-ratio:16 / 10;border-radius:1rem;border:1px dashed var(--border);display:grid;place-items:center;text-align:center;color:var(--muted);background:var(--surface-tint);padding:1rem}.notice-stack{display:grid;gap:.7rem}.notice{border-radius:1rem;border:1px solid var(--border);padding:.85rem .95rem;background:var(--surface-strong);display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notice strong{color:var(--text-strong)}.notice p{margin:0;color:var(--muted);line-height:1.5}.empty-state{padding:1.25rem;border-radius:1.2rem;border:1px dashed var(--border);background:var(--surface-tint);color:var(--muted);display:grid;gap:.45rem}.empty-title{margin:0;color:var(--text-strong);font-weight:700}.empty-copy{margin:0;line-height:1.6}.footer-note{color:var(--muted);font-size:.86rem;line-height:1.55}.fade-in{animation:fade-in .22s ease-out}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1240px){.summary-grid,.feature-grid,.content-grid--three,.week-days{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-layout,.week-layout,.shopping-layout,.tutorial-layout,.content-grid--two{grid-template-columns:1fr}.chapter-nav{position:static}}@media (max-width: 768px){.app-shell,.screen-shell{width:min(100vw - 1rem,var(--page-width))}.app-shell{padding-top:.75rem}.page-topbar,.toolbar,.helper-row,.section-head,.feature-footer,.panel-heading,.notice{align-items:stretch;flex-direction:column}.page-topbar{gap:.7rem;padding:.55rem .65rem;border-radius:1.2rem}.toolbar{justify-content:flex-start}.brand{gap:.7rem}.brand-mark{width:2.45rem;height:2.45rem}.brand-tagline{display:none}.summary-grid,.feature-grid,.content-grid--three,.recipe-grid,.product-grid,.week-days,.landing-layout,.week-layout,.shopping-layout,.tutorial-layout,.content-grid--two{grid-template-columns:1fr}.hero-title{max-width:none;font-size:clamp(2.35rem,13vw,3.8rem)}.section-tabs,.segmented-control{border-radius:1.4rem}.section-tab,.button,.segmented-button,.section-tabs,.action-row,.inline-actions,.toolbar-group,.panel-actions{width:100%}.toolbar-group{justify-content:space-between}.button,.section-tab,.segmented-button{justify-content:center}}@media (max-width: 768px){.screen-shell--app{width:min(100vw - .5rem,var(--page-width))}.page-topbar{flex-direction:row;align-items:center;justify-content:space-between}.dashboard-content-shell{display:contents}.section-head{gap:.65rem}.section-title{font-size:clamp(1.32rem,7vw,1.78rem);line-height:1.04}.section-copy{max-width:none;line-height:1.55}.toolbar{display:none}.nav-hamburger{display:inline-flex;align-items:center;justify-content:center}.nav-drawer{display:grid;flex-basis:100%;width:100%;margin-top:.05rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid transparent;box-shadow:none;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);overflow:clip;grid-template-rows:0fr;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-.4rem);transition:grid-template-rows .22s ease,opacity .16s ease,transform .16s ease,border-color .16s ease,box-shadow .16s ease,visibility 0s linear .22s}.nav-drawer-panel{min-height:0;overflow:hidden;padding:0 .85rem;transition:padding .22s ease}.nav-drawer.is-open{grid-template-rows:1fr;opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);border-color:var(--border);box-shadow:0 18px 40px #0f172a1f;transition-delay:0s}.nav-drawer.is-open .nav-drawer-panel{padding:.9rem}}.page-topbar--landing{position:static;margin-bottom:.15rem}.landing-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,380px);gap:1.25rem;align-items:stretch}.hero{position:relative;overflow:hidden;min-height:100%;padding:clamp(1.4rem,2.8vw,2.6rem)}.hero-shell:before,.hero-shell:after{content:"";position:absolute;border-radius:999px;pointer-events:none}.hero-shell:before{inset:-4rem auto auto -3rem;width:18rem;height:18rem;background:radial-gradient(circle,rgba(15,114,104,.18) 0%,transparent 72%)}.hero-shell:after{inset:auto -5rem -7rem auto;width:20rem;height:20rem;background:radial-gradient(circle,rgba(200,111,45,.17) 0%,transparent 72%)}.hero-grid{gap:1.15rem;max-width:46rem;margin:0 auto;justify-items:center;text-align:center}.hero-title{max-width:16ch;font-size:clamp(2rem,3.8vw,3.35rem);line-height:1}.hero-subtitle{max-width:44rem;font-size:1rem;line-height:1.72}.action-row{gap:.8rem;justify-content:center}.action-row .button{min-width:11.75rem}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.feature-card{position:relative;overflow:hidden;padding:1.05rem;min-height:100%}.feature-card:after{content:"";position:absolute;inset:auto -2.5rem -2.5rem auto;width:7rem;height:7rem;border-radius:999px;background:radial-gradient(circle,rgba(15,114,104,.14) 0%,transparent 68%);pointer-events:none}.feature-number{background:linear-gradient(135deg,var(--accent-soft),color-mix(in srgb,var(--accent-soft) 60%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}.auth-card{position:sticky;top:var(--shell-sticky-offset);padding:1.1rem;align-self:start}.auth-heading{gap:.42rem}.auth-title{font-size:1.7rem}.auth-copy{max-width:42ch}.segmented-control{background:color-mix(in srgb,var(--surface-muted) 88%,transparent)}.segmented-button{min-height:2.9rem}.landing-layout>.surface,.landing-layout .surface--soft,.landing-layout .surface--compact,.landing-layout .auth-card{-webkit-backdrop-filter:blur(28px) saturate(145%);backdrop-filter:blur(28px) saturate(145%)}.landing-layout .surface-pad{padding:1.15rem}.landing-layout .section-note{background:color-mix(in srgb,var(--surface-strong) 62%,transparent)}.landing-layout .inline-actions{justify-content:center}.landing-layout+.surface,.landing-layout+.surface-pad{margin-top:.2rem}@media (max-width: 1180px){.landing-layout{grid-template-columns:1fr}.auth-card{position:static}}@media (max-width: 780px){.hero{padding:1.15rem}.hero-title{max-width:18ch;font-size:clamp(1.7rem,7.8vw,2.3rem)}.feature-grid{grid-template-columns:1fr}.action-row .button,.inline-actions .button,.toolbar .button{width:100%}}.page-topbar--app{position:sticky;top:.75rem;z-index:30;margin-bottom:.45rem;-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%)}.toolbar{flex-wrap:wrap}.toolbar-group,.section-tabs,.segmented-control{-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%)}.dashboard-grid{display:grid;gap:1rem}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:.65rem}.summary-card{position:relative;overflow:hidden;min-height:0;padding:.8rem .85rem;gap:.25rem;align-content:start;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 82%,transparent),var(--surface))}.summary-card:after{content:"";position:absolute;inset:auto -.9rem -.9rem auto;width:3.35rem;height:3.35rem;border-radius:999px;background:radial-gradient(circle,rgba(15,114,104,.1) 0%,transparent 70%)}.summary-label{font-size:.74rem;line-height:1.3;letter-spacing:.08em}.summary-value{font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1}.section-tabs{position:sticky;top:var(--shell-sticky-offset);z-index:25;padding:.45rem;overflow-x:auto}.section-tab{min-height:2.9rem;padding-inline:1.05rem}.dashboard-grid .surface,.dashboard-grid .surface--soft,.dashboard-grid .surface--compact{-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%)}.dashboard-grid .surface-pad{padding:1.15rem}.content-grid--two{grid-template-columns:minmax(0,1fr) minmax(320px,.86fr)}.import-card--product{align-content:start}.content-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-grid,.product-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.recipe-library-section .section-head{margin-bottom:.6rem}.recipe-card,.product-card,.job-card,.day-card,.chapter-panel,.media-card,.export-card{display:grid;gap:.85rem}.recipe-card,.product-card,.job-card,.day-card{padding:1rem;min-height:100%}.recipe-card,.product-card,.job-card{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 82%,transparent),var(--surface))}.recipe-card,.product-card{grid-template-columns:minmax(110px,132px) minmax(0,1fr);align-items:start}.job-card--compact{gap:.55rem;padding:.85rem}.recipe-cover,.product-cover,.media-image{aspect-ratio:1 / 1;border-radius:1rem}.recipe-cover,.product-cover{min-height:120px}.recipe-snippet{-webkit-line-clamp:4}.recipe-ingredients-list{gap:.5rem}.recipe-ingredient{padding:.55rem .65rem;border-radius:.85rem;background:var(--surface-tint)}.recipe-ingredient strong,.recipe-ingredient span{color:var(--text-strong)}.job-stack{display:grid;gap:.75rem}.job-meta,.recipe-meta,.product-meta,.shopping-meta{gap:.45rem}.job-status,.import-status,.shopping-match{padding:.36rem .68rem}.week-layout{display:grid;grid-template-columns:minmax(300px,.84fr) minmax(0,1.16fr);gap:1rem}.week-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.day-card{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 88%,transparent),var(--surface));align-content:start}.day-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem}.day-card-copy{display:grid;gap:.25rem}.day-name{letter-spacing:.11em}.day-summary{margin:0;color:var(--muted);line-height:1.5}.day-empty{border-radius:1rem;min-height:7rem}.plan-row,.shopping-row,.step-row,.notice{background:var(--surface-strong);border:1px solid var(--border)}.shopping-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:1rem}.shopping-list{display:grid;gap:.75rem}.shopping-row{display:grid;gap:.7rem}.shopping-copy,.job-copy,.empty-copy,.section-copy,.hero-subtitle{line-height:1.65}.export-card{position:sticky;top:var(--shell-sticky-offset)}.export-lines{gap:.55rem}.export-line{background:var(--surface-strong)}.link-button{padding:.2rem 0}.detail-row{gap:.65rem}.dashboard-grid .empty-state,.dashboard-grid .notice{border-radius:1rem}.recipe-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;display:grid;justify-items:center;align-items:start;padding:1.05rem;overflow-y:auto;overscroll-behavior:contain;background:#0c152085;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.recipe-detail-dialog{width:min(1040px,calc(100vw - 2.1rem));max-height:none;min-height:0;min-width:0;overflow:visible;padding:0}.recipe-detail-shell,.detail-card,.detail-copy-stack,.recipe-detail-media-stack{display:grid;gap:.75rem}.recipe-detail-handle{display:none}.recipe-detail-shell{max-height:none;overflow:visible;padding:.9rem;min-width:0}.recipe-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.recipe-detail-heading{display:grid;gap:.35rem;min-width:0}.recipe-detail-title{margin:0;font-family:var(--font-display);font-size:clamp(1.5rem,2.35vw,2.3rem);line-height:1.06;color:var(--text-strong)}.recipe-detail-title:focus-visible{outline:2px solid var(--accent);outline-offset:.35rem;border-radius:.6rem}.recipe-detail-lead{margin:0;max-width:58ch;color:var(--muted);line-height:1.55;overflow-wrap:anywhere}.recipe-detail-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.recipe-detail-dialog .button{padding:.74rem 1rem}.recipe-detail-layout{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(0,1.15fr);gap:.9rem;align-items:start;min-width:0}.recipe-detail-layout>*{min-width:0}.detail-card--ingredient-pane{grid-column:1}.recipe-detail-main-column{display:grid;gap:.9rem;align-content:start;min-width:0}.recipe-detail-cover{border-radius:1rem;max-width:100%}.recipe-detail-cover--image{display:block;width:100%;max-width:none;aspect-ratio:4 / 3;object-fit:cover}.recipe-detail-cover--fallback{min-height:14rem}.recipe-detail-meta{display:flex;flex-wrap:wrap;gap:.45rem}.detail-card{padding:.85rem .9rem;border-radius:1rem;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-strong) 92%,transparent);min-width:0}.recipe-detail-dialog .panel-title{font-size:1.02rem}.detail-card--planning,.detail-card--instructions{align-content:start}.detail-toggle{width:auto;justify-self:start}.button-content--loading{display:inline-flex;align-items:center;gap:.55rem}.button-inline-spinner{width:.95rem;height:.95rem;border-radius:999px;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}.detail-toggle--footer{margin-top:.2rem}.detail-paragraph{margin:0;color:var(--text-strong);line-height:1.58}.detail-paragraph--muted{color:var(--muted)}.recipe-detail-ingredients{display:grid;gap:.45rem;min-width:0}.recipe-detail-ingredient{display:grid;gap:.6rem;padding:.6rem .7rem;border-radius:.8rem;background:var(--surface-tint);color:var(--muted);min-width:0}.ingredient-match-main{display:grid;gap:.24rem;min-width:0}.ingredient-measurement{color:var(--text-strong)}.ingredient-product-name{color:var(--muted);font-size:.84rem;line-height:1.45}.ingredient-product-status{color:var(--warning);font-size:.78rem;line-height:1.4}.ingredient-product-note{color:var(--muted);font-size:.78rem;line-height:1.4}.ingredient-product-trigger{display:inline-flex;align-items:baseline;gap:.25rem;width:fit-content;padding:0;background:transparent;border:0;color:var(--muted);text-align:left;font:inherit;font-size:.84rem;line-height:1.45;cursor:pointer}.ingredient-product-trigger:hover,.ingredient-product-trigger:focus-visible{color:var(--text-strong)}.ingredient-product-trigger__value{color:var(--accent-strong);text-decoration:underline;text-underline-offset:.14em}.recipe-list-basics-note{display:grid;gap:.45rem;padding:.75rem;border-radius:.95rem;border:1px solid color-mix(in srgb,var(--warning) 28%,var(--border));background:color-mix(in srgb,var(--warning) 10%,var(--surface-strong))}.recipe-list-basics-note strong{color:var(--text-strong)}.recipe-list-basics-options{display:grid;gap:.45rem}.recipe-list-basics-note .checkbox-row{align-items:flex-start}.recipe-list-basics-note .button{width:auto;justify-self:start}.ingredient-match-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:.45rem}.ingredient-suggestions-state{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted)}.ingredient-suggestions-panel,.ingredient-suggestion-list,.ingredient-suggestion-group,.ingredient-manual-fallback{display:grid;gap:.55rem}.ingredient-suggestion-heading{display:grid;gap:.18rem;color:var(--muted);font-size:.82rem;line-height:1.45}.ingredient-suggestion-heading strong{color:var(--text-strong)}.ingredient-suggestion-card{display:grid;gap:.5rem;padding:.7rem;border-radius:.85rem;border:1px solid var(--border);background:var(--surface)}.ingredient-suggestion-copy{display:grid;gap:.2rem}.ingredient-suggestion-copy strong,.ingredient-suggestion-copy span{white-space:normal}.ingredient-manual-fallback{padding-top:.25rem;border-top:1px solid var(--border)}@media (min-width: 700px){.ingredient-suggestion-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}}.recipe-detail-footer{margin-top:.3rem}.button--danger{color:#fff;background:linear-gradient(180deg,color-mix(in srgb,var(--danger) 88%,#ffffff 12%),var(--danger));border:1px solid color-mix(in srgb,var(--danger) 68%,var(--border));box-shadow:inset 0 1px #ffffff2e}.button--danger:hover,.button--danger:focus-visible{background:linear-gradient(180deg,color-mix(in srgb,var(--danger) 96%,#ffffff 4%),color-mix(in srgb,var(--danger) 92%,#000000 8%));border-color:color-mix(in srgb,var(--danger) 82%,var(--border))}.button--danger:disabled{background:color-mix(in srgb,var(--danger) 55%,var(--surface));border-color:color-mix(in srgb,var(--danger) 42%,var(--border))}.shopping-composer{display:grid;gap:.65rem}.shopping-recipe-picks{display:grid;gap:.42rem;max-height:15rem;overflow-y:auto}.checkbox-row{display:flex;align-items:center;gap:.55rem;color:var(--text-strong)}.shopping-qty-control{max-width:7.5rem}.recipe-detail-ingredient strong,.recipe-detail-ingredient span{color:var(--text-strong)}.recipe-detail-ingredient strong,.instruction-copy{overflow-wrap:anywhere}.recipe-detail-ingredient strong{flex:1 1 auto;min-width:0}.recipe-detail-ingredient span{flex:none;white-space:nowrap}.recipe-instruction-list{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.instruction-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start}.instruction-index{width:1.8rem;height:1.8rem;border-radius:.65rem;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:800}.instruction-copy{color:var(--text-strong);line-height:1.58}.recipe-plan-grid{display:grid;gap:.7rem}.recipe-plan-actions{display:grid;gap:.65rem}.recipe-list-overlay{display:grid;gap:.7rem;padding:.75rem;border-radius:.95rem;border:1px solid var(--border);background:var(--surface-tint)}.recipe-list-overlay .field{margin:0}@media (min-width: 781px){.content-grid--products{grid-template-columns:minmax(280px,.74fr) minmax(0,1.26fr);align-items:start}.import-card--product{max-width:30rem;justify-self:start;gap:.75rem}.import-card--product .form-grid{gap:.7rem}.import-card--product .section-copy{max-width:34ch;line-height:1.55}.button--product-import{width:auto;min-width:0;justify-self:start;padding:.72rem 1rem}}.landing-layout .surface,.dashboard-grid .surface,.tutorial-layout .surface{box-shadow:var(--shadow)}@media (max-width: 1240px){.content-grid--three,.week-days{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid--two,.week-layout,.shopping-layout,.recipe-detail-layout{grid-template-columns:1fr}.export-card{position:static}}@media (max-width: 780px){.content-grid--three,.recipe-grid,.product-grid,.week-days{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:.55rem}.summary-card{padding:.72rem .75rem;gap:.2rem}.summary-value{font-size:1.35rem}.section-tabs{top:var(--shell-sticky-offset)}.section-tab,.button,.segmented-button,.toolbar .button,.toolbar-group,.panel-actions,.inline-actions,.action-row{width:100%}.recipe-detail-layout{grid-template-columns:1fr}.detail-card--ingredient-pane,.recipe-detail-main-column,.detail-card--planning,.detail-card--instructions{grid-column:auto;grid-row:auto}.toolbar-group{justify-content:space-between}.recipe-card,.product-card{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-overview-card{padding:.82rem;border-radius:1.05rem}.dashboard-grid{gap:.78rem}.dashboard-grid .surface-pad{padding:.88rem}.content-grid,.content-grid--two,.content-grid--three,.week-layout,.shopping-layout,.job-stack,.week-days{gap:.78rem}.import-card,.list-card,.planner-card,.shopping-card,.export-card,.recipe-card,.product-card,.job-card,.day-card{gap:.72rem}.job-card,.recipe-card,.product-card,.day-card{padding:.82rem}.recipe-card,.product-card{grid-template-columns:88px minmax(0,1fr);align-items:start}.recipe-cover,.product-cover{width:88px;max-width:88px;min-height:88px;aspect-ratio:1 / 1}.job-meta,.recipe-meta,.product-meta,.shopping-meta{gap:.38rem}.job-status,.import-status,.shopping-match,.chip{padding-inline:.62rem}.section-tabs{display:none}.page-topbar--app{top:.35rem;margin-bottom:.28rem;padding:.4rem .56rem;border-radius:1.05rem;gap:.5rem}.page-topbar--app .brand{width:auto;flex:1 1 auto;min-height:2.8rem;gap:.58rem;align-items:center;padding:.08rem .12rem}.page-topbar--app .brand-copy{min-width:0;align-content:center}.page-topbar--app .brand-mark{width:2.25rem;height:2.25rem}.page-topbar--app .brand-name{font-size:1.08rem;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-topbar--app .nav-hamburger{width:2.8rem;height:2.8rem;margin-left:auto}.recipe-detail-overlay{align-items:stretch;padding:0;overflow:hidden;background:color-mix(in srgb,var(--bg-alt) 14%,rgba(5,11,18,.84));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.recipe-detail-dialog{width:100vw;max-width:none;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;border-radius:0;border-inline:0;border-bottom:0;box-shadow:none;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 97%,transparent),color-mix(in srgb,var(--surface) 98%,transparent))}.recipe-detail-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding-top:.1rem}.recipe-detail-actions .button{width:100%;min-width:0}.recipe-detail-shell{height:100%;min-height:100%;padding:calc(.4rem + env(safe-area-inset-top,0px)) calc(.85rem + env(safe-area-inset-right,0px)) calc(1rem + env(safe-area-inset-bottom,0px)) calc(.85rem + env(safe-area-inset-left,0px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;align-content:start;gap:.85rem}.recipe-detail-handle{display:block;width:3rem;height:.3rem;margin:0 auto -.05rem;border-radius:999px;background:color-mix(in srgb,var(--text) 18%,transparent)}.recipe-detail-header{flex-direction:column;align-items:stretch;position:sticky;top:calc(-.4rem - env(safe-area-inset-top,0px));z-index:2;margin:-.4rem calc(-.85rem - env(safe-area-inset-right,0px)) 0 calc(-.85rem - env(safe-area-inset-left,0px));padding:.45rem calc(.85rem + env(safe-area-inset-right,0px)) .9rem calc(.85rem + env(safe-area-inset-left,0px));background:linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 99%,transparent),color-mix(in srgb,var(--surface) 94%,transparent) 72%,color-mix(in srgb,var(--surface) 8%,transparent));border-bottom:1px solid color-mix(in srgb,var(--border) 92%,transparent);-webkit-backdrop-filter:blur(18px) saturate(155%);backdrop-filter:blur(18px) saturate(155%)}.recipe-detail-heading{width:100%}.recipe-detail-title{font-size:clamp(1.35rem,6vw,1.8rem);overflow-wrap:anywhere}.recipe-detail-cover{border-radius:1.1rem}.recipe-detail-ingredient{align-items:stretch;gap:.3rem}}.tutorial-layout{display:grid;grid-template-columns:minmax(280px,.3fr) minmax(0,.7fr);gap:1.1rem;align-items:start}.chapter-nav{display:grid;gap:.6rem;position:sticky;top:var(--shell-sticky-offset)}.chapter-button{width:100%;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:center;padding:.95rem 1rem;border-radius:1rem;border:1px solid transparent;background:var(--surface-muted);color:var(--muted)}.chapter-button-copy{display:grid;gap:.18rem}.chapter-button-copy strong{color:var(--text-strong);font-size:.96rem}.chapter-button-copy span{font-size:.84rem;line-height:1.45}.chapter-button:hover{transform:translateY(-1px)}.chapter-button.is-active{background:var(--surface-strong);color:var(--text-strong);border-color:var(--border);box-shadow:var(--shadow)}.chapter-number{width:2rem;height:2rem;border-radius:.75rem;display:grid;place-items:center;margin-right:0;background:var(--accent-soft);color:var(--accent-strong);font-weight:800}.chapter-panel{padding:1.15rem}.chapter-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.48fr);gap:1rem;align-items:start}.chapter-copy-stack{display:grid;gap:.7rem}.chapter-title{font-size:clamp(1.9rem,3vw,2.55rem)}.chapter-summary{max-width:68ch}.chapter-api{background:color-mix(in srgb,var(--surface-strong) 80%,transparent)}.chapter-steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem}.step-row{display:grid;gap:.65rem;align-content:start;padding:1rem;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.step-index{width:fit-content;min-width:2.1rem;height:2.1rem;padding:0 .7rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-contrast);font-weight:800}.step-copy{color:var(--text-strong);line-height:1.55}.step-copy strong{color:var(--text-strong)}.media-card{width:100%;max-width:360px;justify-self:end;display:grid;gap:.55rem;padding:.85rem;border-radius:1.15rem;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 82%,transparent),var(--surface));border:1px solid var(--border);box-shadow:var(--shadow)}.media-image,.media-fallback{aspect-ratio:16 / 10}.media-image{width:100%;cursor:pointer;border-radius:1rem;border:1px solid var(--border);object-fit:cover;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 55%,transparent),color-mix(in srgb,var(--warm) 18%,transparent))}.media-caption{margin:0;line-height:1.6}.media-fallback{width:100%;border-radius:1rem;border:1px dashed var(--border);display:grid;place-items:center;text-align:center;color:var(--muted);background:var(--surface-tint);padding:1rem}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.lightbox-img{max-width:92vw;max-height:88vh;border-radius:var(--radius-xl);box-shadow:var(--shadow);object-fit:contain;background:transparent}@media (max-width: 1120px){.tutorial-layout,.chapter-banner{grid-template-columns:1fr}.chapter-nav{position:static;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);overflow-x:auto;padding-bottom:.25rem}}@media (max-width: 780px){.chapter-nav{grid-auto-flow:row;grid-auto-columns:unset}.chapter-button{width:100%}.chapter-panel{padding:1rem}.media-card{padding:1rem;max-width:320px;justify-self:start}}@media (max-width: 600px){.chapter-steps{grid-template-columns:1fr}}
