.guest { padding-bottom: calc(var(--space-5) * 2); }
.order__head { display: flex; flex-direction: column; gap: 4px; }
.order__head .btn { align-self: flex-start; }
.order__closed { padding: var(--space-3); border-radius: var(--radius); background: var(--color-highlight); color: var(--color-highlight-ink); font-weight: 600; }
.order__group { display: flex; flex-direction: column; gap: var(--space-2); }
.order__group + .order__group { margin-top: var(--space-4); } /* room before each next category */
.order__group-title { font-size: 1.05rem; }
.order__items { list-style: none; margin: 0; padding: 12px; display: flex; flex-direction: column; gap: 12px; border: 2px dashed var(--color-accent); border-radius: calc(var(--radius-lg) + 6px); }
.order-item { width: 100%; display: flex; gap: var(--space-3); align-items: center; text-align: left; padding: 14px 16px; min-height: var(--tap); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); color: var(--color-text); font: inherit; cursor: pointer; box-shadow: var(--shadow-sm); transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s; }
.order-item:hover:not(:disabled) { border-color: var(--color-primary); box-shadow: var(--shadow-md); }
.order-item:active:not(:disabled) { transform: scale(0.99); }
.order-item:disabled { cursor: default; }
.order-item--soldout { opacity: 0.55; box-shadow: none; }
.order-item__photo { width: 80px; height: 80px; flex: none; align-self: flex-start; object-fit: cover; border-radius: var(--radius); }
.order-item__text { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.order-item__name { font-weight: 700; font-size: 1.02rem; line-height: 1.3; }
.order-item__desc { color: var(--color-muted); font-size: 0.88rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.order-item__price { margin-top: 6px; font-weight: 700; color: var(--color-primary); }
.order-item--soldout .order-item__price { color: var(--color-muted); }
.order-item__add { display: inline-grid; place-items: center; width: 32px; height: 32px; flex: none; align-self: flex-start; border-radius: var(--radius-full); background: var(--color-primary); color: var(--color-on-dark); }
.order-item__add svg { display: block; } /* an SVG plus sits dead-centre; a text "+" doesn't */
.order__cartbar { position: fixed; left: var(--space-3); right: var(--space-3); bottom: calc(var(--space-3) + env(safe-area-inset-bottom)); z-index: 60; justify-content: space-between; max-width: calc(var(--content-max) - var(--space-4)); margin: 0 auto; box-shadow: var(--shadow-lg); }
.sheet__card { max-height: 90vh; overflow: auto; display: flex; flex-direction: column; gap: var(--space-3); }
.sheet__photo { width: 100%; max-height: 220px; object-fit: cover; border-radius: var(--radius); }
.sheet__desc { color: var(--color-muted); }
.sheet__qty { display: flex; align-items: center; justify-content: center; gap: var(--space-3); }
.sheet__qty-value { font-size: 1.3rem; font-weight: 800; min-width: 2ch; text-align: center; }
.cart { position: fixed; inset: 0; z-index: 90; display: grid; place-items: end center; background: rgba(0, 0, 0, 0.45); }
.cart__card { width: 100%; max-width: var(--content-max); max-height: 92vh; overflow: auto; background: var(--color-surface); border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding: var(--space-4) var(--space-3); display: flex; flex-direction: column; gap: var(--space-3); }
/* Phones: a sheet from the bottom. Wider screens: a centred card. */
@media (min-width: 600px) {
  .cart { place-items: center; padding: var(--space-4); }
  .cart__card { border-radius: var(--radius-lg); max-height: calc(100vh - 2 * var(--space-4)); }
}
.cart__head { display: flex; align-items: center; justify-content: space-between; }
.cart__lines { list-style: none; margin: 0; padding: 12px; display: flex; flex-direction: column; gap: 12px; border: 2px dashed var(--color-accent); border-radius: calc(var(--radius-lg) + 6px); }
.cart__line { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.cart__line-top { display: flex; align-items: flex-start; gap: var(--space-2); }
.cart__line-top .cart__line-text { flex: 1; }
.cart__remove { width: 32px; height: 32px; min-height: 32px; padding: 0; margin: -4px -6px 0 0; border-radius: var(--radius-full); flex: none; }
.cart__remove:hover { background: var(--color-tint); color: var(--color-text); }
.cart__remove svg { display: block; }
.cart__line-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.cart__line-total { font-weight: 700; color: var(--color-primary); }
.cart__line-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cart__line-name { font-weight: 700; }
.cart__line-sub { color: var(--color-muted); font-size: 0.88rem; line-height: 1.4; }
.cart__line-gone { color: var(--color-danger-text); font-size: 0.85rem; }
.cart__line--gone .cart__line-name { text-decoration: line-through; }
.cart__qty { display: flex; align-items: center; gap: 6px; }
.cart__qty .btn { width: 40px; height: 40px; min-height: 40px; padding: 0; border-radius: var(--radius-full); }
.cart__qty .btn svg { display: block; }
.cart__qty-value { min-width: 2ch; text-align: center; font-weight: 700; }
.cart__total { display: flex; justify-content: space-between; font-size: 1.1rem; }
.cart__form { display: flex; flex-direction: column; gap: var(--space-3); }
.order__last { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-2); padding: 12px 16px; border: 1px solid var(--color-accent); border-radius: var(--radius-lg); background: var(--color-highlight); color: var(--color-highlight-ink); font-weight: 800; text-decoration: none; }
.order__last:hover { border-color: var(--color-primary); }
