* { box-sizing: border-box; }
body { background: #f3f6fb; margin: 0; font-family: Arial, sans-serif; color: #0f172a; }

.btn { display: inline-block; border: 1px solid transparent; padding: .35rem .65rem; font-size: .9rem; line-height: 1.25rem; cursor: pointer; background: #e2e8f0; color: #0f172a; }
.btn-sm { padding: .28rem .55rem; font-size: .82rem; }
.btn-primary { background: #2563eb; border-color: #2563eb; color: #fff; }
.btn-outline-primary { background: transparent; border-color: #93c5fd; color: #1d4ed8; }
.btn-dark { background: #0f172a; border-color: #0f172a; color: #fff; }
.btn-outline-dark { background: transparent; border-color: #94a3b8; color: #334155; }
.btn-group { display: flex; gap: 8px; }
.btn-group-sm .btn { font-size: .82rem; }
.d-flex { display: flex; }
.d-none { display: none !important; }

.menu-shell { max-width: 880px; margin: 0 auto; padding: 16px 12px 28px; }
.menu-hero { background: #0f172a; color: #fff; border-radius: 16px; padding: 16px; box-shadow: 0 8px 24px rgba(2,6,23,.25); }
.menu-hero h1 { font-size: 1.2rem; margin: 0 0 6px; font-weight: 700; }
.menu-hero .meta { opacity: .9; font-size: .92rem; }
.menu-tabs-wrap { margin-top: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.menu-tabs { display: flex; flex-wrap: nowrap; gap: 8px; padding-bottom: 4px; }
.menu-tabs .btn { white-space: nowrap; border-radius: 999px; }
.menu-group-switch { margin-top: 12px; }
.menu-group-switch .btn { border-radius: 999px; }
.menu-grid { margin-top: 16px; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.menu-item { background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 12px; box-shadow: 0 1px 2px rgba(15,23,42,.06); }
.menu-item .name { font-weight: 700; color: #0f172a; margin: 0; }
.menu-item .group { font-size: .82rem; color: #64748b; margin-top: 3px; }
.menu-item .price { font-size: 1.05rem; font-weight: 700; color: #0ea5a4; margin-top: 8px; }
.empty-box { margin-top: 14px; padding: 14px; border-radius: 12px; background: #fff; border: 1px dashed #cbd5e1; color: #475569; }
