:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none;line-height:1.5;--green:var(--green);--muted:var(--muted);--line:var(--line)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--warning);outline-offset:4px}.app-shell{max-width:720px;margin:auto}.brand{display:flex;align-items:center;justify-content:space-between;padding:25px 24px;border-bottom:1px solid var(--line)}.brand a{position:relative;display:block;font-size:19px;font-weight:700;letter-spacing:-.6px;padding-left:39px}.brand-icon{position:absolute;left:0;top:-5px;font-size:36px;color:var(--green)}.brand-sub{display:block;font-size:8px;font-weight:600;letter-spacing:1.7px;color:var(--muted)}.people{font-size:var(--text-small);border:1px solid var(--line);border-radius:30px;padding:6px 10px;white-space:nowrap}main{padding:32px 24px calc(108px + env(safe-area-inset-bottom));outline:none}.eyebrow{font-size:var(--text-small);letter-spacing:2px;font-weight:700;color:var(--green);margin:0 0 9px}h1{font-family:var(--font-ui);font-size:38px;font-weight:400;letter-spacing:-1.3px;line-height:1.15;margin:0 0 12px}.intro{font-size:var(--text-label);color:var(--muted);margin:0 0 28px;max-width:340px}.tip{display:flex;gap:15px;background:var(--accent-soft);border-radius:16px;padding:18px}.tip>span{font-size:29px}.tip strong{font-size:var(--text-label)}.tip p{font-size:var(--text-small);color:var(--muted);margin:4px 0 0}.section-title{display:flex;align-items:center;justify-content:space-between;margin:28px 0 12px}.section-title h2{font-size:var(--text-body);margin:0;font-weight:650}.section-title>span{font-size:var(--text-small);color:var(--muted)}.ingredient-list{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}.ingredient,.shopping-item{display:flex;align-items:center;gap:12px;padding:17px 16px;min-height:74px}.ingredient+.ingredient,.shopping-item+.shopping-item{border-top:1px solid var(--line)}.food-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:var(--surface-soft);font-size:22px}.ingredient strong,.shopping-name strong{display:block;font-size:var(--text-label);font-weight:600}.ingredient small,.shopping-name small{display:block;font-size:var(--text-small);color:var(--muted);margin-top:3px}.quantity{margin-left:auto;font-size:var(--text-small);color:var(--muted);text-align:right}.footnote{font-size:var(--text-small);line-height:1.6;color:var(--muted);margin:18px 0}.notice{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:14px 0;font-size:var(--text-small);font-weight:700;letter-spacing:1px}.notice span{letter-spacing:0;font-weight:400;color:var(--muted)}.meal-list{display:grid;gap:16px}.meal{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.meal-top{display:flex;justify-content:space-between;font-size:var(--text-small);color:var(--muted);gap:10px}.day{font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--green)}.meal-number{display:block;font-family:var(--font-ui);font-size:32px;color:#c3cbb6;margin:14px 0 0}.meal h2{font-family:var(--font-ui);font-weight:400;font-size:23px;line-height:1.25;margin:6px 0 9px;max-width:320px}.meal p{font-size:var(--text-small);color:var(--muted)}.meal-bottom{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-small);margin-top:18px}.meal-bottom strong{font-size:var(--text-label)}details{border-top:1px solid var(--line);margin-top:15px;padding-top:12px;font-size:var(--text-small)}summary{cursor:pointer;min-height:30px}details ul{padding-left:20px;line-height:1.9}.shopping-total{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:22px;background:var(--green);color:var(--surface);border-radius:16px}.shopping-total small{display:block;font-size:var(--text-small);color:var(--on-accent-muted)}.shopping-total strong{font-family:var(--font-ui);font-size:32px;font-weight:400}.shopping-total>span{font-size:var(--text-small);color:var(--on-accent-muted)}.shopping-item{cursor:pointer}.shopping-item input{width:23px;height:23px;accent-color:var(--green);margin:0 3px 0 0;flex-shrink:0}.shopping-item:has(input:checked) .shopping-name{text-decoration:line-through;opacity:.5}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.settings-card label{font-size:var(--text-label);font-weight:650}.settings-card>p:not(.footnote){font-size:var(--text-small);color:var(--muted)}textarea{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:14px;resize:vertical;font-size:var(--text-body);line-height:1.6;color:var(--ink);background:var(--surface-soft)}.saved{display:block;font-size:var(--text-small);color:var(--green)}.about{margin-top:30px}.about h2{font-family:var(--font-ui);font-size:22px;font-weight:400}.about p{font-size:var(--text-label);color:var(--muted)}.version{font-size:var(--text-small);letter-spacing:1.5px;color:var(--muted)}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);width:100%;max-width:720px;background:#faf8f3f5;border-top:1px solid var(--line);padding:10px 8px calc(10px + env(safe-area-inset-bottom));backdrop-filter:blur(12px);z-index:2}nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;gap:3px;color:var(--muted);font-size:var(--text-small);border-radius:12px}nav a>span{font-size:22px;line-height:1.2}nav a[aria-current]{color:var(--green);background:var(--accent-soft);font-weight:700}@media(min-width:600px){main{padding:42px 40px 120px}.brand{padding:25px 40px}h1{font-size:46px}.intro{max-width:none}.ingredient,.shopping-item{padding:18px 22px}}
.recipe-image-preview { padding:0; border:0; background:transparent; cursor:zoom-in; flex-shrink:0; }
.recipe-image-preview:focus-visible { outline:3px solid currentColor; outline-offset:3px; }
.recipe-preview-row { display:flex; align-items:center; gap:12px; }
.recipe-preview-row .library-recipe { flex:1; }
.recipe-preview-row .recipe-thumb { width:clamp(100px,16vw,148px); height:clamp(100px,16vw,148px); }
.recipe-detail>.recipe-image-preview { display:block; width:100%; max-width:420px; }
.recipe-preview-row .plan-recipe>span:first-child, .plan-dish .plan-recipe>span:first-child { flex:1; min-width:0; }
.recipe-preview-row .plan-recipe>span:nth-child(2), .plan-dish .plan-recipe>span:nth-child(2) { flex:0; }
.recipe-image-dialog { border:0; border-radius:16px; padding:16px; max-width:95vw; max-height:95vh; }
.recipe-image-dialog::backdrop { background:rgba(0,0,0,.75); }
.recipe-image-dialog>button { display:block; margin-left:auto; margin-bottom:12px; }
.recipe-image-dialog>img { display:block; max-width:85vw; max-height:78vh; object-fit:contain; }
