@font-face{font-family:'Geist';src:url(fonts/geist-var.woff2) format('woff2');font-weight:100 900;font-display:swap}
:root{--bg:#fbfbfd;--bg2:#f5f5f7;--ink:#1d1d1f;--muted:#6e6e73;--line:rgba(0,0,0,.09);--card:#fff;--accent:#0071e3;--glass:rgba(251,251,253,.72);--ok:#1a8f4c;--bad:#d70015;
--shadow:0 1px 2px rgba(0,0,0,.05),0 18px 40px -18px rgba(0,0,0,.25);--sans:-apple-system,BlinkMacSystemFont,'SF Pro Text','Geist',system-ui,'Segoe UI',Roboto,sans-serif}
@media (prefers-color-scheme:dark){:root{--bg:#0b0b0d;--bg2:#161618;--ink:#f5f5f7;--muted:#a1a1a6;--line:rgba(255,255,255,.12);--card:#1c1c1e;--accent:#2997ff;--glass:rgba(22,22,24,.7);--ok:#32d74b;--bad:#ff453a;--shadow:0 1px 2px rgba(0,0,0,.5),0 18px 40px -18px rgba(0,0,0,.8)}}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{min-height:100vh;color:var(--ink);font:400 16px/1.45 var(--sans);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;padding-bottom:110px}
button,input,textarea{font:inherit;color:inherit}
.wrap{width:min(820px,100% - 32px);margin-inline:auto}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:10px}
header.top{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);background:var(--glass);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:56px}
.logo{font-weight:650;font-size:20px;letter-spacing:-.04em;color:inherit;text-decoration:none}.logo span{color:var(--muted);font-weight:500}
.right{display:flex;align-items:center;gap:10px}
.chip{height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);cursor:pointer;font-size:14px}
.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--bg2);cursor:pointer}
h1{font-weight:650;font-size:clamp(34px,7vw,56px);line-height:1.05;letter-spacing:-.05em;margin:36px 0 8px}
h2{font-weight:650;font-size:22px;letter-spacing:-.03em;margin:28px 0 10px}
.sub{color:var(--muted)}
.cards{display:grid;gap:14px;margin-top:22px}
.rcard{display:block;width:100%;text-align:left;padding:22px;border-radius:24px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer}
.rcard h3{font-size:24px;letter-spacing:-.04em}
.rcard p{color:var(--muted);margin-top:4px;font-size:14.5px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tag{font-size:12.5px;padding:4px 10px;border-radius:999px;background:var(--bg2);color:var(--muted)}
.tag.warn{background:rgba(255,159,10,.16);color:#b86e00}
.item{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.item h4{font-weight:560;font-size:16.5px;display:flex;align-items:center;gap:8px}
.item p{color:var(--muted);font-size:14px;margin-top:2px;max-width:46ch}
.price{font-weight:560;margin-top:6px;font-variant-numeric:tabular-nums}
.veg{width:14px;height:14px;border:1.5px solid var(--ok);border-radius:3px;display:inline-grid;place-items:center;flex:none}
.veg::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok)}.veg.non{border-color:var(--bad)}.veg.non::after{background:var(--bad)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:46px;padding:0 22px;border-radius:999px;border:1px solid var(--line);background:var(--card);cursor:pointer;font-weight:500;transition:transform .18s cubic-bezier(.3,1.4,.5,1),opacity .2s}
.btn:active{transform:scale(.96)}.btn[disabled]{opacity:.5;pointer-events:none}
.btn.primary{background:var(--ink);color:var(--bg);border-color:transparent}.btn.block{width:100%}
.step{display:inline-flex;align-items:center;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--card);overflow:hidden}
.step button{width:36px;height:36px;border:0;background:none;cursor:pointer;font-size:18px}.step span{min-width:22px;text-align:center;font-variant-numeric:tabular-nums}
.add{height:36px;padding:0 18px;border-radius:999px;border:1px solid var(--accent);color:var(--accent);background:none;cursor:pointer;font-weight:560}
.cartbar{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;justify-content:center;z-index:25;pointer-events:none}
.cartbar .btn{pointer-events:auto;width:min(560px,100%);height:54px;justify-content:space-between;box-shadow:var(--shadow)}
.sheet{position:fixed;inset:0;z-index:40}.scrim{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.panel{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);max-height:92vh;overflow:auto;background:var(--bg);border-radius:28px 28px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));animation:up .35s cubic-bezier(.2,1,.3,1)}
@keyframes up{from{transform:translate(-50%,40px);opacity:0}}
.row{display:flex;justify-content:space-between;gap:12px;padding:6px 0}.row.total{font-weight:650;font-size:18px;border-top:1px solid var(--line);margin-top:6px;padding-top:12px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;background:var(--bg2);border-radius:14px;margin:14px 0}
.seg button{height:38px;border:0;border-radius:11px;background:none;cursor:pointer}.seg button[aria-pressed=true]{background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:560}
label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}
input,textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--card);font-size:16px}
.err{color:var(--bad);font-size:14px;margin-top:10px}.ok{color:var(--ok)}
.status{font-weight:650;font-size:15px}.order{padding:18px;border-radius:22px;background:var(--card);border:1px solid var(--line);margin-top:12px}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;z-index:60;font-size:14px}
.back{background:none;border:0;color:var(--accent);cursor:pointer;margin-top:18px;padding:0}
.foot{color:var(--muted);font-size:13px;margin:36px 0 12px;text-align:center}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
