:root{--bg: #faf8f4;--surface: #ffffff;--surface-2: #f1ede4;--text: #1c1a17;--muted: #6c675e;--border: #e2ddd2;--accent: #b5491f;--accent-text: #ffffff;--accent-soft: #f6e2d6;--ok: #2f6f4e;--danger: #a33a2e;--warn: #8a6d1f;--radius: 10px;--listen: #2a78d6;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #151412;--surface: #1e1c19;--surface-2: #29261f;--text: #ece7de;--muted: #a09889;--border: #3a362e;--accent: #e8794a;--accent-text: #1a0d06;--accent-soft: #3d2418;--ok: #6fbf90;--danger: #e0786b;--warn: #d6b25a;--listen: #6aa8f0;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;padding-top:env(safe-area-inset-top)}h1{font-size:1.6rem;margin:.4rem 0 1rem;letter-spacing:-.01em}h2{font-size:1.2rem;margin:1.2rem 0 .6rem}h3{font-size:1rem;margin:1rem 0 .4rem}a{color:var(--accent)}p{margin:.4rem 0 .8rem}.wrap{max-width:44rem;margin:0 auto;padding:1rem 1rem 2rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin:0 0 1rem}.muted{color:var(--muted)}.small{font-size:.85rem}.error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:var(--radius);padding:.6rem .8rem;margin:0 0 .8rem}.notice{background:var(--accent-soft);border-radius:var(--radius);padding:.6rem .8rem;margin:0 0 .8rem}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.grow{flex:1;min-width:0}label{display:block;font-size:.9rem;color:var(--muted);margin:.7rem 0 .25rem}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .7rem}textarea{min-height:6rem;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}input[type=checkbox],input[type=radio]{width:auto}input[type=range]{padding:0;border:none;background:none;accent-color:var(--accent)}button{font:inherit;font-weight:600;cursor:pointer;min-height:44px;background:var(--accent);color:var(--accent-text);border:1px solid var(--accent);border-radius:var(--radius);padding:.55rem 1rem;margin:.3rem 0}button:disabled{opacity:.5;cursor:default}button.secondary{background:transparent;color:var(--text);border-color:var(--border)}button.plain{background:transparent;color:var(--text);border-color:transparent}button.danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}button.linky{background:none;border:none;color:var(--accent);padding:.3rem 0;min-height:0;font-weight:500}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);width:100%;max-width:40rem;max-height:92vh;overflow-y:auto;border-radius:16px 16px 0 0;padding:1rem 1.25rem 2rem;padding-bottom:calc(2rem + env(safe-area-inset-bottom))}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sheet-head h2{margin:0}.fab{position:fixed;right:1.1rem;bottom:calc(1.2rem + env(safe-area-inset-bottom));width:60px;height:60px;border-radius:50%;font-size:1.9rem;line-height:1;padding:0;margin:0;z-index:30;box-shadow:0 4px 14px #00000040}.recipe-row{display:block;width:100%;text-align:left;font-weight:400;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem 1rem;margin:0 0 .6rem}.recipe-row strong{display:block;font-size:1.05rem}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{font-size:.8rem;padding:.15rem .55rem;border-radius:999px;background:var(--surface-2);color:var(--muted)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.choice{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);font-weight:600;padding:.9rem;margin:0;min-height:84px}.choice span{font-weight:400;font-size:.85rem;color:var(--muted)}.thumbs{display:flex;gap:.5rem;flex-wrap:wrap;margin:.6rem 0}.thumb{position:relative;width:84px;height:84px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--muted)}.thumb img{width:100%;height:100%;object-fit:cover}.thumb .x{position:absolute;top:2px;right:2px;min-height:0;width:24px;height:24px;padding:0;border-radius:50%;font-size:.8rem;margin:0;background:#0009;border:none;color:#fff}.thumb .n{position:absolute;bottom:2px;left:4px;color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.8)}.ing-list{list-style:none;padding:0;margin:0}.ing-list li{padding:.35rem 0;border-bottom:1px solid var(--border);display:flex;gap:.6rem}.ing-list li:last-child{border-bottom:none}.ing-qty{min-width:5.5rem;font-weight:600;font-variant-numeric:tabular-nums}.steps-list{padding-left:1.4rem;margin:0}.steps-list li{margin:0 0 .8rem;padding-left:.2rem}.group-head{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.9rem 0 .2rem}.edit-row{display:grid;grid-template-columns:4.2rem 4.2rem 1fr auto;gap:.35rem;align-items:center;margin:.3rem 0}.edit-row input{padding:.45rem .5rem}.edit-row button{min-height:38px;padding:.2rem .55rem;margin:0}.cook{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:35;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}.cook-top{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;border-bottom:1px solid var(--border)}.cook-top .title{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cook-body{flex:1;overflow-y:auto;padding:1rem 1.2rem}.cook-stepno{color:var(--accent);font-weight:700;letter-spacing:.03em;font-size:.95rem}.cook-section{color:var(--muted);font-size:.9rem}.cook-text{font-size:clamp(1.45rem,4.8vw,2.4rem);line-height:1.35;margin:.4rem 0 1rem;font-weight:500}.cook-uses{font-size:1.05rem}.cook-uses li{padding:.3rem 0}.cook-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;padding:.6rem .8rem;padding-bottom:calc(.6rem + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.cook-bottom button{min-height:64px;font-size:1.05rem;margin:0}.timers{display:flex;gap:.5rem;flex-wrap:wrap;padding:.5rem .8rem 0}.timer{display:flex;align-items:center;gap:.5rem;padding:.35rem .7rem;border-radius:999px;background:var(--surface-2);font-variant-numeric:tabular-nums;font-weight:600}.timer.done{background:var(--accent);color:var(--accent-text);animation:pulse 1s infinite}.timer button{min-height:0;padding:0 .3rem;margin:0;background:none;border:none;color:inherit}@keyframes pulse{50%{opacity:.55}}.voice-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem .9rem;font-size:.95rem;background:var(--surface-2);border-bottom:1px solid var(--border);min-height:44px}.voice-dot{width:12px;height:12px;border-radius:50%;background:var(--muted);flex:none}.voice-dot.idle{background:var(--ok)}.voice-dot.listening{background:var(--listen);animation:pulse .8s infinite}.voice-dot.thinking{background:var(--warn);animation:pulse .5s infinite}.voice-dot.speaking{background:var(--accent)}.voice-dot.off{background:var(--muted)}.heard{font-style:italic;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.check-item{display:flex;align-items:center;gap:.8rem;padding:.8rem;font-size:1.25rem;border-bottom:1px solid var(--border)}.check-item.done{color:var(--muted);text-decoration:line-through}.check-item.current{background:var(--accent-soft);border-radius:var(--radius)}.check-item input{width:1.5rem;height:1.5rem}.tabs{display:flex;gap:.3rem;margin:0 0 1rem;border-bottom:1px solid var(--border)}.tabs button{background:none;border:none;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);margin:0;padding:.5rem .8rem}.tabs button[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.help-list{padding-left:1.2rem}.help-list li{margin:.25rem 0}
