:root{--bg: #fbf4ea;--surface: #ffffff;--surface-2: #f1e3cf;--fg: #2a1d14;--muted: #7a6350;--line: #ecdcc6;--accent: #a84a24;--accent-strong: #8c3c1c;--accent-soft: #f7e1d3;--on-accent: #ffffff;--ok: #d99a1e;--ok-soft: #fbedc9;--ok-fg: #7a5408;--warn: #8c2f39;--warn-soft: #f6dfe0;--shadow-sm: 0 1px 2px rgb(90 50 20 / .07), 0 1px 1px rgb(90 50 20 / .04);--shadow-md: 0 2px 4px rgb(90 50 20 / .07), 0 8px 24px rgb(90 50 20 / .09);--radius: 16px;--serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Georgia, serif;--tile-l: 90%;--tile-s: 55%;--tile-fg-l: 30%;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #15110d;--surface: #1f1914;--surface-2: #2a221b;--fg: #f3e9dd;--muted: #b29d88;--line: #352b22;--accent: #e58a5c;--accent-strong: #f0a37b;--accent-soft: #3a2216;--on-accent: #2a1208;--ok: #e6b04a;--ok-soft: #3a2c12;--ok-fg: #f0c56a;--warn: #ec8a92;--warn-soft: #3d1d21;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 2px 4px rgb(0 0 0 / .35), 0 8px 24px rgb(0 0 0 / .35);--tile-l: 22%;--tile-s: 30%;--tile-fg-l: 80%;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0 auto;max-width:760px;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-top:max(16px,env(safe-area-inset-top,0px));padding-bottom:max(32px,env(safe-area-inset-bottom,0px))}a{color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}h1{margin:0;font:650 24px/1.2 var(--serif);letter-spacing:-.01em;display:flex;align-items:center;gap:10px}h1 .logo{width:32px;height:32px;border-radius:9px;box-shadow:var(--shadow-sm)}.version{color:var(--muted);font-size:12px}.account{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.tabs{position:sticky;top:max(8px,env(safe-area-inset-top,0px));z-index:10;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin:0 0 16px;padding:4px;border-radius:999px;background:color-mix(in srgb,var(--surface-2) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm)}.tabs .tab{min-height:40px;display:flex;align-items:center;justify-content:center;border-radius:999px;color:var(--muted);text-decoration:none;font-weight:600;transition:background .15s,color .15s}.tabs .tab:hover{color:var(--fg)}.tabs .tab[aria-current=page]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}input[type=search]{width:100%;height:48px;padding:0 14px 0 42px;border:1px solid var(--line);border-radius:14px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%238a8377' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='m16 16-3.5-3.5'/%3E%3C/svg%3E") no-repeat 14px center;color:var(--fg);font:inherit;box-shadow:var(--shadow-sm);transition:border-color .15s}input[type=search]:focus{border-color:var(--accent)}.tools input[type=text],.tools select,.review textarea,.review input[type=text],.review input[type=number],.review select,.tools input[type=file],.panel input{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--fg)}.review textarea,.review input[type=text],.review input[type=number],.review select,.tools input[type=file]{width:100%}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}button.chip,a.chip{min-height:38px;padding:6px 14px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;font-weight:550;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .1s}button.chip:hover,a.chip:hover{border-color:var(--muted)}button.chip:active,a.chip:active{transform:scale(.97)}button.chip[aria-pressed=true],a.chip[href$=add-photo],button.chip[type=submit]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}a.chip[href$=add-photo]:hover,button.chip[type=submit]:hover{background:var(--accent-strong)}.chip.danger{color:var(--warn)}.items{list-style:none;margin:0;padding:0;display:grid;gap:10px}.items li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;justify-content:space-between;gap:12px;align-items:center;box-shadow:var(--shadow-sm)}.items .name{font-weight:600}.items .meta,.meta{color:var(--muted);font-size:13px}.editable{cursor:pointer;flex:1}.tag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap;background:var(--ok-soft);color:var(--ok-fg)}.tag.low{background:var(--warn-soft);color:var(--warn)}.tag.sub{background:var(--surface-2);color:var(--fg)}.tag.quiet{background:transparent;color:var(--muted);border:1px solid var(--line)}button.tag{border:0;cursor:pointer;font-family:inherit}.count{color:var(--muted);font-size:13px}.panel{background:var(--accent-soft);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;overflow-wrap:anywhere}.panel p{margin:0 0 8px}.panel form{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.panel input{flex:1 1 200px}.tools{margin:8px 0;display:grid;gap:8px}.tools form{display:flex;gap:8px;flex-wrap:wrap}.tools input{flex:1 1 160px}.review-field{display:grid;gap:4px}.banner{width:100%;text-align:left;margin:0 0 12px;padding:14px 16px;border:0;border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);font:inherit;font-weight:600;cursor:pointer;min-height:48px}.brief{display:grid;gap:8px}.brief h3{margin:4px 0 0;font-size:15px}.sheet{border:0;border-radius:20px;padding:20px;width:min(560px,calc(100vw - 24px));max-height:85vh;background:var(--bg);color:var(--fg);box-shadow:var(--shadow-md)}.sheet::backdrop{background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.view-title{margin:0 0 4px;font:650 26px/1.2 var(--serif);letter-spacing:-.01em}.recipes h3{margin:28px 0 10px;font:650 18px/1.3 var(--serif)}.recipes .meta{margin:0}.recipes input[type=search]{margin-top:12px}.recipes details{margin-top:16px}.recipes summary{cursor:pointer}.items li:has(>.recipe-card){padding:0;transition:transform .15s,box-shadow .15s}.items li:has(>.recipe-card):hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.recipe-card{display:flex;gap:14px;align-items:center;width:100%;padding:14px 16px;color:inherit;text-decoration:none;border-radius:var(--radius)}.recipe-card>div{flex:1;min-width:0}@media (max-width: 480px){.recipe-card{display:grid;grid-template-columns:48px 1fr;row-gap:8px;align-items:start}.recipe-card>.tag{grid-column:2;justify-self:start}}.recipe-card .name{font:600 17px/1.3 var(--serif)}.recipe-card .missing-list{color:var(--warn);margin-top:2px}.recipe-tile{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font:650 22px/1 var(--serif);background:hsl(var(--hue, 140) var(--tile-s) var(--tile-l));color:hsl(var(--hue, 140) 45% var(--tile-fg-l))}.coverage{height:5px;margin-top:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;max-width:220px}.coverage>span{display:block;height:100%;border-radius:inherit;background:var(--warn)}.coverage.full>span{background:var(--ok)}.back{display:inline-flex;align-items:center;min-height:36px;margin-bottom:8px;color:var(--accent);text-decoration:none;font-weight:600}.back:hover{text-decoration:underline}.stepper{display:inline-flex;align-items:center;gap:4px;margin:16px 0 0;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm)}.stepper-btn{width:40px;height:40px;padding:0;justify-content:center;font-size:20px;line-height:1;border:0!important;background:var(--surface-2)!important}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-value{min-width:104px;text-align:center;font-weight:650;font-variant-numeric:tabular-nums}.items.ingredients{gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.items.ingredients li{border:0;border-radius:0;box-shadow:none;padding:12px 16px 12px 48px;position:relative}.items.ingredients li+li{border-top:1px solid var(--line)}.ingredient:before{content:"✓";position:absolute;left:16px;top:50%;translate:0 -50%;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--ok-soft);color:var(--ok-fg)}.ingredient.is-substitute:before{content:"⇄";background:var(--surface-2);color:var(--fg)}.ingredient.is-missing:before{content:"!";background:var(--warn-soft);color:var(--warn)}.ingredient.is-optional:before{content:"";background:transparent;border:1.5px dashed var(--line)}.ingredient .amount{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:650}.ingredient.is-missing .name,.ingredient.is-missing .amount{color:var(--warn)}.ingredient .substitute{font-style:italic}.ingredients+.count{margin-top:10px}.steps{list-style:none;margin:0;padding:0;display:grid;gap:14px;counter-reset:step}.steps li{counter-increment:step;display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start}.steps li:before{content:counter(step);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:14px}.steps li{padding-top:4px}.steps li:before{margin-top:-4px}@media (prefers-reduced-motion: reduce){*{transition:none!important}.items li:has(>.recipe-card):hover{transform:none}}.voice-change{gap:8px}.voice-pick{display:flex;gap:8px;align-items:flex-start;flex:1;cursor:pointer}.voice-pick input{margin-top:4px;width:20px;height:20px}.voice-change select{width:auto;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg)}.chip.mic{min-height:48px;font-size:16px}.chip.mic.listening{background:var(--accent);color:var(--surface)}.voice-change{flex-wrap:wrap}.voice-fields{display:flex;gap:6px;flex-wrap:wrap;align-items:center;width:100%;padding-left:28px}.voice-fields select,.voice-expiry input{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg)}.voice-expiry{display:inline-flex;gap:6px;align-items:center}
