/* ===== CUSTOMER MENU ===== */
.menu-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:14px}
.menu-loading-card{grid-column:1 / -1;min-height:120px;display:flex;align-items:center;justify-content:center}
.menu-section-card{position:relative;box-sizing:border-box;overflow:hidden;background:#fff;border-radius:16px;border:1px solid #d6e4da;padding:0 18px 18px;box-shadow:0 6px 18px rgba(20,74,43,.09);transition:transform .18s ease,box-shadow .18s ease;display:flex;flex-direction:column}
.menu-section-card::before{content:'';position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--green),#43a66b)}
.menu-section-card::after{content:'';position:absolute;right:-42px;top:-48px;width:125px;height:125px;border-radius:50%;background:rgba(35,128,72,.07);pointer-events:none}
.menu-section-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(20,74,43,.14)}
.menu-section-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 -18px 12px;padding:14px 18px 13px;background:linear-gradient(135deg,#edf8f1,#f8fcf9);border-bottom:1px solid #d5e6db}
.menu-section-header::before{content:'✦';display:grid;place-items:center;width:26px;height:26px;flex:0 0 26px;border-radius:8px;background:var(--green);color:#fff;font-size:11px;box-shadow:0 4px 10px rgba(24,112,58,.22)}
.menu-section-title{font-size:15px;text-transform:uppercase;letter-spacing:.8px;color:var(--green-dark);font-weight:900;flex:1}
.menu-item-count{font-size:12px;font-weight:700;color:#fff;background:var(--green);padding:2px 10px;border-radius:12px;flex:0 0 auto}

.category-menu-list{display:grid;grid-template-columns:1fr;gap:8px;padding:2px 8px 2px 0;max-height:400px;overflow-y:auto;position:relative}
.category-menu-list::-webkit-scrollbar{width:6px}
.category-menu-list::-webkit-scrollbar-track{background:#edf3ef;border-radius:999px;margin:4px 0}
.category-menu-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#9abca7,#59a677);border-radius:999px;transition:background .2s ease}
.category-menu-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--green),#43a66b)}
.category-menu-list::after{content:'';position:absolute;bottom:0;left:0;right:0;height:28px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.8));pointer-events:none;border-radius:0 0 10px 10px;opacity:0;transition:opacity .2s ease}
.category-menu-list.is-scrollable::after{opacity:1}
.category-menu-item{position:relative;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:linear-gradient(135deg,#f8fcf9,#fff);border:1px solid #e2ebe5;border-radius:10px;transition:all .15s ease;cursor:pointer}
.category-menu-item:hover{background:linear-gradient(135deg,#edf7f0,#f5fbf8);border-color:var(--green);box-shadow:0 4px 12px rgba(35,128,72,.12)}
.menu-item-main{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.menu-item-name{font-size:13px;font-weight:600;color:var(--gray-900);line-height:1.3;word-break:break-word}
.menu-item-meta{display:flex;align-items:center;gap:4px;font-size:11px}
.food-type-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}
.food-type-badge.veg{background:#d4f1d4;color:#1b5e1b}
.food-type-badge.non-veg{background:#ffe5e5;color:#8b0000}
.food-type-badge.other{background:#f0f0f0;color:#666}
.menu-item-price{font-size:14px;font-weight:700;color:var(--green);white-space:nowrap;margin-left:12px;padding:4px 8px;background:#edf8f1;border-radius:6px}

@media(max-width:1100px){.menu-sections{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr}}
@media(max-width:700px){.menu-sections{grid-template-columns:1fr;grid-auto-rows:auto}.menu-section-card{padding:0 16px 16px}.menu-section-header{margin:0 -16px 12px;padding-left:16px;padding-right:16px}.menu-item-price{font-size:13px;padding:3px 6px}.category-menu-item{padding:9px 10px}.category-menu-list{max-height:300px;padding:2px 8px 2px 0}}
