:root {
  --bg:#f5f7f8; --sheet:#fff; --text:#111418; --muted:#667085;
  --brand:#1e9135; --brand-strong:#187a2b; --danger:#ed2121;
  --border:#e6e8eb; --shadow:0 8px 24px rgba(0,0,0,.08); --radius:14px;
  --fab-extra:16px;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,"Noto Sans",sans-serif;background:var(--bg);color:var(--text);padding-bottom:var(--fab-extra)}
.container{width:min(980px,100%);margin:0 auto;padding:16px;padding-bottom:var(--fab-extra);scroll-padding-bottom:var(--fab-extra)}

.app-header{position:sticky;top:0;z-index:5;background:var(--bg);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border)}
.app-header .brand{display:flex;align-items:center;gap:12px;padding:12px 16px}
.logo{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:var(--sheet);box-shadow:var(--shadow)}
.titles h1{font-size:18px;margin:0}
.subtitle{margin:2px 0 0;font-size:13px;color:var(--muted)}

.menu-container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (min-width:560px){.menu-container{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:880px){.menu-container{grid-template-columns:repeat(4,minmax(0,1fr))}}

.menu-item{position:relative;background:var(--sheet);border:1px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .2s ease}
.menu-item:active{transform:translateY(1px)}
.thumb{display:grid;place-items:center;padding:6px 0 10px}
.menu-item img{width:100%;max-width:120px;height:120px;object-fit:contain}
.menu-info{display:grid;gap:8px}
.menu-info .name{font-size:15px;line-height:1.25}
.price{font-size:13px;color:var(--muted)}

.add-button,.quantity-button,#cart_button{border:0;cursor:pointer;color:#fff;background:var(--brand);padding:10px 12px;border-radius:12px;font-size:14px;font-weight:600;line-height:1;transition:transform .06s ease}
.add-button:active,.quantity-button:active,#cart_button:active{transform:scale(.98)}

.quantity-controls{display:flex;justify-content:center;align-items:center;gap:10px}
.quantity-button{width:40px;height:40px;display:grid;place-items:center}
.quantity-button.minus{background:var(--danger)}
.quantity-button.minus:hover{filter:brightness(.95)}

.item-count{position:absolute;top:10px;right:10px;width:30px;height:30px;background:var(--brand);color:#fff;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;box-shadow:var(--shadow);transform-origin:center;transition:transform .2s ease-in-out}
.item-count.pulse{animation:pulse .3s ease-in-out}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.25)}100%{transform:scale(1)}}

/* FAB без свечения */
#cart_button{
  position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:10;
  display:none;padding:16px 18px;border-radius:18px;background:var(--brand);
  box-shadow:none;text-align:center;font-size:15px;
}
#cart_button:hover,#cart_button:focus,#cart_button:focus-visible{background:var(--brand);outline:none;box-shadow:none}
#cart_button .sub{display:block;font-size:12px;opacity:.9}

/* Аккуратная доступность: без свечения */
button:focus-visible{outline:2px solid rgba(0,0,0,0);outline-offset:0}
