:root{--bg: #cde5a5;--bg-muted: #e6efce;--fg: #0b3a1e;--fg-muted: #4a6a54;--card: #ffffff;--card-muted: #eef3dd;--accent: #0c3820;--accent-fg: #ffffff;--accent-soft: #e8f2d6;--border: #bfd494;--tag-bg: #f5ecb4;--tag-fg: #5a4a00;--danger: #b0341d;--radius-pill: 999px;--radius-lg: 20px;--radius-md: 14px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;background:var(--bg)}a{color:var(--accent);text-decoration:none;font-weight:600}a:hover{text-decoration:underline}.app{max-width:640px;margin:0 auto;padding:1.25rem 1.25rem 6rem;min-height:100vh;background:var(--bg)}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;gap:.5rem;flex-wrap:wrap}.center{text-align:center}.muted{color:var(--fg-muted)}h1{font-size:1.9rem;font-weight:800;margin:.5rem 0 .25rem;letter-spacing:-.01em;color:var(--fg)}h2{font-size:1.4rem;font-weight:800;margin:.25rem 0;letter-spacing:-.01em;color:var(--fg)}h3{font-size:1rem;font-weight:700;margin:.25rem 0;color:var(--fg)}p{line-height:1.5;margin:.5rem 0}.step-label{font-size:.875rem;color:var(--fg-muted);font-weight:500;margin-top:1rem}button,.btn{font:inherit;font-weight:700;cursor:pointer;background:var(--accent);color:var(--accent-fg);border:none;padding:.95rem 1.5rem;border-radius:var(--radius-md);transition:transform .08s ease,filter .15s ease,background .15s ease;font-size:1rem;line-height:1.2}button:hover:not(:disabled),.btn:hover:not(:disabled){filter:brightness(1.1)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost,.btn.ghost{background:var(--card);color:var(--fg);border:1px solid transparent}button.ghost:hover:not(:disabled){filter:none;background:var(--bg-muted)}button.danger{background:var(--danger)}.footer-actions{position:sticky;bottom:0;left:0;right:0;margin-left:-1.25rem;margin-right:-1.25rem;padding:1rem 1.25rem 1.25rem;background:linear-gradient(to bottom,transparent,var(--bg) 30%);display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:center}.footer-actions button{min-width:0}.footer-actions .primary{justify-self:stretch}.option-list{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}.option-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:var(--card);border:2px solid transparent;border-radius:var(--radius-pill);cursor:pointer;font-weight:600;color:var(--fg);transition:background .15s,border-color .15s,transform .08s,color .15s;-webkit-user-select:none;user-select:none}.option-row:hover{background:var(--bg-muted)}.option-row:active{transform:scale(.99)}.option-row.selected{background:var(--card);border-color:var(--accent);color:var(--accent)}.option-row.disabled{background:var(--card-muted);color:var(--fg-muted);cursor:not-allowed;opacity:.7}.option-row .check{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:2px solid var(--fg-muted);display:grid;place-items:center;transition:background .15s,border-color .15s}.option-row.selected .check{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.option-row.selected .check:after{content:"✓";font-size:15px;font-weight:800;line-height:1}.card{background:var(--card);border-radius:var(--radius-lg);padding:1rem;box-shadow:0 1px 2px #0b3a1e0a}.dish-row{display:flex;gap:1rem;align-items:flex-start;padding:1rem;background:var(--card);border-radius:var(--radius-lg);border:2px solid transparent;transition:border-color .15s}.dish-row.selected{border-color:var(--accent)}.dish-thumb{flex-shrink:0;width:84px;height:84px;border-radius:50%;object-fit:cover;background:var(--bg-muted)}.dish-thumb.placeholder{display:grid;place-items:center;color:var(--fg-muted);font-size:28px}.dish-body{flex:1;min-width:0}.dish-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.dish-head .name{font-weight:700;font-size:1.05rem;color:var(--fg);margin:0;overflow:hidden;text-overflow:ellipsis}.dish-head .price{color:var(--fg);font-weight:600;font-size:.95rem;white-space:nowrap}.dish-description{color:var(--fg-muted);font-size:.9rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:.35rem 0 .5rem}.dish-description .more{color:var(--accent);font-weight:700;text-decoration:underline}.tags{display:flex;gap:.35rem;flex-wrap:wrap}.tag{background:var(--tag-bg);color:var(--tag-fg);padding:.2rem .7rem;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;white-space:nowrap;text-transform:capitalize}.badge{display:inline-block;padding:.2rem .6rem;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;background:var(--accent);color:var(--accent-fg)}.badge.popular{background:#2b6aa9}.chip{display:inline-block;padding:.35rem .9rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);font-size:.88rem;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--fg)}.chip.selected{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.chip.excluded{background:var(--card-muted);color:var(--fg-muted);border-color:transparent;text-decoration:line-through}.chip.disabled{opacity:.4;cursor:not-allowed}.hero{text-align:center;padding:2.5rem 0 1.5rem}.hero h1{font-size:2.25rem;margin:0 0 .5rem}.hero .tagline{font-size:1.05rem;color:var(--fg-muted);max-width:28ch;margin:0 auto 1.75rem}.card-action{display:block;padding:1.1rem 1.25rem;text-align:center;background:var(--card);color:var(--fg);border-radius:var(--radius-md);font-weight:700;border:none;width:100%;font-size:1rem}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b3a1e66;z-index:20;display:flex;align-items:flex-end;justify-content:center;animation:fadein .15s ease-out}.sheet{width:100%;max-width:640px;background:var(--card);border-radius:28px 28px 0 0;padding:1.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));box-shadow:0 -8px 24px #0b3a1e26;animation:slideup .25s ease-out}.sheet h2{text-align:center;margin-bottom:.5rem}.sheet .sheet-subtitle{text-align:center;color:var(--fg-muted);margin:0 0 1.5rem}.sheet .sheet-actions{display:grid;grid-template-columns:auto 1fr;gap:.75rem;margin-top:1rem}.sheet .sheet-actions .ghost{border:1px solid var(--accent);color:var(--accent);background:var(--card)}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slideup{0%{transform:translateY(100%)}to{transform:translateY(0)}}.stars{display:flex;justify-content:center;gap:.5rem;font-size:2.2rem;cursor:pointer}.stars span{transition:transform .1s}.stars span:hover{transform:scale(1.15)}details.info-section{background:var(--card);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-top:1.5rem}details.info-section summary{cursor:pointer;font-weight:700;color:var(--fg);list-style:none;display:flex;justify-content:space-between;align-items:center}details.info-section summary::-webkit-details-marker{display:none}details.info-section summary:after{content:"▾";color:var(--fg-muted);transition:transform .15s}details.info-section[open] summary:after{transform:rotate(180deg)}input[type=text],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=search],input[type=number],textarea,select{font:inherit;width:100%;padding:.7rem .9rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card);color:var(--fg);margin-top:.25rem}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-2px;border-color:var(--accent)}label{display:block;font-weight:600;font-size:.9rem;color:var(--fg)}
