:root{--bg: #fbf7ef;--card: #ffffff;--text: #1f2a22;--muted: #5e6b61;--line: #e7dfcf;--accent: #2f7d4f;--accent-text: #ffffff;--accent-soft: #e3f1e7;--warm: #d9622b;--warm-soft: #fbe7da;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #121612;--card: #1b211c;--text: #edf2ec;--muted: #a3b0a5;--line: #2c352e;--accent: #5fbf85;--accent-text: #0e1a12;--accent-soft: #1f3326;--warm: #f08a55;--warm-soft: #3a2519;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;-webkit-text-size-adjust:100%}.app{max-width:34rem;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 1rem) 16px calc(env(safe-area-inset-bottom,0px) + 1.5rem);display:grid;gap:.9rem}.top h1{margin:0;font-size:1.7rem;letter-spacing:-.02em}.title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.units{display:inline-flex;flex:none;padding:3px;border:1.5px solid var(--line);border-radius:999px;background:var(--card)}.units button{min-width:64px;min-height:36px;padding:0 .75rem;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:.88rem;font-weight:600}.units button[aria-checked=true]{background:var(--accent);color:var(--accent-text)}.sub{margin:.25rem 0 0;color:var(--muted);font-size:.92rem}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:.9rem}.label{display:block;margin:0 0 .45rem;color:var(--muted);font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.recipes{display:grid;gap:.45rem}.recipe{min-height:48px;padding:.65rem .85rem;border:1.5px solid var(--line);border-radius:12px;background:transparent;color:var(--text);font:inherit;font-weight:600;text-align:left}.recipe[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.controls{display:grid;gap:.9rem}.stepper{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden}.stepper button{height:48px;border:0;background:var(--accent-soft);color:var(--accent);font-size:1.4rem;font-weight:700}.stepper button:disabled{opacity:.4}.stepper output{text-align:center;font-size:1.2rem;font-weight:700;font-variant-numeric:tabular-nums}select{width:100%;min-height:48px;padding:0 .75rem;border:1.5px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);font:inherit;font-size:1rem}.check{display:flex;align-items:center;gap:.6rem;min-height:44px;font-size:.95rem}.check input{width:22px;height:22px;accent-color:var(--accent)}.result{border-color:var(--accent)}.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.result h2{margin:0;font-size:1.15rem}.servings{color:var(--muted);font-weight:500}.actions{display:flex;flex:none;flex-direction:column;gap:.4rem}.copy,.share{min-width:112px;min-height:44px;padding:0 1rem;border-radius:999px;font:inherit;font-weight:700}.copy{border:0;background:var(--warm);color:#fff}.share{border:1.5px solid var(--warm);background:transparent;color:var(--warm)}.back{display:inline-block;margin-bottom:.35rem;padding:.35rem 0;color:var(--accent);font-weight:600;text-decoration:none}.notice{margin:0;padding:.6rem .75rem;border-radius:10px;background:var(--warm-soft)}.search{width:100%;min-height:48px;padding:0 .75rem;border:1.5px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);font:inherit}.families{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.family{display:grid;gap:.25rem;color:var(--text);text-decoration:none}.family:active{border-color:var(--accent)}.family-name{font-size:1.2rem;font-weight:700}.family-intro{color:var(--muted);font-size:.92rem}.family-count{color:var(--accent);font-size:.85rem;font-weight:600}.lines{margin:.75rem 0 0;padding:0;list-style:none;display:grid;gap:.15rem}.lines li{padding:.45rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.lines li:last-child{border-bottom:0}.amount{font-weight:700;font-variant-numeric:tabular-nums}.lines li[data-role=protein] .amount,.lines li[data-role=extra] .amount{color:var(--accent)}.lines li[data-role=fiber] .amount{color:var(--warm)}.note{display:block;color:var(--muted);font-size:.82rem}.totals{margin:.75rem 0 0;padding:.6rem .75rem;border-radius:10px;background:var(--warm-soft);font-size:.95rem}.per{color:var(--muted)}.fine{margin:.4rem 0 0;color:var(--muted);font-size:.78rem}.remember{padding:0 .25rem}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--warm);outline-offset:2px}
