/* V5.4.9: loading feedback, readable controls and a focused ordering surface. */
.lunch-v549{--muted:#667970;--shadow-sm:0 4px 16px rgba(22,54,45,.04)}
.lunch-v549 .hero-title{font-size:clamp(26px,3vw,34px);margin-bottom:4px}
.hero-date{font-size:15px;font-weight:700;color:#65776e;letter-spacing:.03em}
.lunch-v549 .lunch-hero .muted{line-height:1.7;font-size:14px;margin:10px 0 0}
.lunch-v549 .eyebrow{letter-spacing:.12em}
.lunch-v549 .section-head h2{font-size:clamp(21px,2.2vw,26px)}
.lunch-v549 .section-head p{font-size:13px;line-height:1.65}
.lunch-v549 .panel,.lunch-v549 .group-card,.lunch-v549 .status-card{box-shadow:var(--shadow-sm)}
.lunch-v549 button{touch-action:manipulation}
.lunch-v549 button:focus-visible,.lunch-v549 a:focus-visible{outline:3px solid #c39a46;outline-offset:3px}
.lunch-v549 .primary-btn,.lunch-v549 .secondary-btn,.lunch-v549 .ghost-btn,.lunch-v549 .date-btn{min-height:44px;font-size:13px}
.sync-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:11px 16px;border:1px solid #d5dfd8;border-radius:14px;background:#f0f6f2;color:#315c4d;font-size:13px;line-height:1.6}
.sync-status:not(.sync-error)>span:before,.loading-dot{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:10px;background:#467962;animation:lunchPulse 1.4s ease-in-out infinite}
.sync-error{background:#fff6e8;border-color:#e8d2a3;color:#725b2b}
.sync-status .ghost-btn{flex-shrink:0;min-height:38px}
.startup-card{max-width:520px;margin:30px auto;padding:30px 24px;text-align:center;border:1px solid #dfcfaa;border-radius:22px;background:#fffdf8;color:#17463a;line-height:1.7}
.startup-card h2{font-size:22px;margin:8px 0}.startup-card p{color:#667970}
.update-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:rgba(3,43,36,.8)}
.update-overlay .startup-card{width:min(420px,100%)}
@keyframes lunchPulse{50%{opacity:.35}}
.lunch-v549 #app.is-date-loading{opacity:.7;cursor:progress}
.order-shortcuts{display:flex;gap:8px;justify-content:flex-end;margin:12px 0 0}
#myCart,#orderingSection,#storeBrowserSection{scroll-margin-top:150px}
.lunch-v549 .menu-item{gap:14px;border-color:#dedfcf;background:#fffefa;transition:border-color .15s,background-color .15s}
.lunch-v549 .menu-item.is-selected{background:#edf6f0;border-color:#80a994}
.lunch-v549 .menu-item-name{font-size:16px;line-height:1.55;overflow-wrap:anywhere}
.lunch-v549 .menu-item-cat{font-size:11px;line-height:1.6}
.lunch-v549 .menu-item .price{font-size:15px;margin-top:5px}
.lunch-v549 .menu-item-copy{min-width:0}
.lunch-v549 .qty-control{flex-shrink:0}
.lunch-v549 .qty-control button{width:36px;height:36px;font-size:20px;box-shadow:none}
.lunch-v549 .qty-control span{min-width:22px;font-size:15px;font-variant-numeric:tabular-nums}
.lunch-v549 .cart-line-top{font-size:14px;line-height:1.6;align-items:flex-start}
.lunch-v549 .cart-line-top>span:first-child{min-width:0;overflow-wrap:anywhere}
.lunch-v549 .cart-line-top>span:last-child{white-space:nowrap}
.lunch-v549 .cart-total{font-size:24px}
.lunch-v549 .cart-card input{font-size:16px}
.lunch-v549 .cart-help{line-height:1.7}
.order-save-state{padding:10px 12px;border-radius:11px;background:#f3f2eb;color:#6b746d;font-size:13px;line-height:1.5;margin:12px 0}
.order-save-state.unsaved{background:#fff3d8;color:#87631e;border:1px solid #ecd49c}
.order-save-state.saved{background:#e9f4ed;color:#27634b;border:1px solid #bdd9c9}
.menu-tools{margin:12px 0 16px}
.menu-search{display:block;font-size:12px;color:#61766a}
.menu-search input{font-size:16px;min-height:46px;background:#fff}
.menu-filters{display:flex;gap:7px;overflow-x:auto;margin-top:11px;padding:2px 2px 6px;scrollbar-width:thin}
.menu-filters button{flex-shrink:0;border:1px solid #d9d9c8;border-radius:999px;background:#fffefa;padding:8px 14px;font-size:13px;min-height:40px;white-space:nowrap}
.menu-filters button[aria-pressed="true"]{background:#145641;border-color:#145641;color:#fff}
.lunch-v549 .toast{z-index:1600;font-size:14px;line-height:1.5;border-radius:15px}
.lunch-v549 .option-required-tag{white-space:normal;font-size:10px}
.lunch-v549 .menu-panel-title{font-size:17px}
@media(min-width:1101px){
  .lunch-v549 .v42-order-layout{grid-template-columns:minmax(0,1fr) 330px;gap:20px}
  .lunch-v549 .cart-card{top:130px}
  .lunch-v549 .order-menu-panel{padding:22px}
}
@media(min-width:761px) and (max-width:1100px){
  .lunch-v549 .v42-order-layout{grid-template-columns:minmax(0,1fr) 290px;gap:14px}
  .lunch-v549 .v42-menu-list{grid-template-columns:1fr}
  .lunch-v549 .cart-card{position:sticky;top:140px;min-width:0}
}
@media(max-width:760px){
  .lunch-v549 .page-shell{margin-bottom:110px}
  .lunch-v549 .lunch-hero{padding:19px 18px}
  .lunch-v549 .hero-title{font-size:28px}
  .hero-date{font-size:13px}
  .lunch-v549 .lunch-hero .muted{font-size:13px}
  .lunch-v549 .workflow-strip{margin:12px 0}
  .lunch-v549 .section-head{flex-wrap:wrap;gap:10px}
  .lunch-v549 .identity-mini{flex-wrap:wrap;gap:10px}
  .order-shortcuts{justify-content:stretch}
  .order-shortcuts button{flex:1;min-width:0}
  .lunch-v549 .v42-order-layout{grid-template-columns:minmax(0,1fr)}
  .lunch-v549 .cart-card{position:static}
  .lunch-v549 .v42-menu-list{grid-template-columns:1fr}
  .lunch-v549 .menu-item{padding:15px 12px}
  .lunch-v549 .qty-control button{width:40px;height:40px}
  .lunch-v549 .mobile-order-dock{padding-bottom:calc(10px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}
  .lunch-v549 .mobile-order-dock .primary-btn{min-height:46px;font-size:15px}
  .lunch-v549 .toast{left:14px;right:14px;bottom:calc(96px + env(safe-area-inset-bottom));max-width:none;text-align:center}
  .lunch-v549 .option-picker-footer .primary-btn{font-size:14px;padding:9px}
  .lunch-v549 input,.lunch-v549 select,.lunch-v549 textarea{font-size:16px}
  .sync-status{padding:10px 12px;font-size:12px}
  #myCart,#orderingSection,#storeBrowserSection{scroll-margin-top:160px}
}
@media(max-width:370px){
  .lunch-v549 .qty-control{gap:2px}
  .lunch-v549 .qty-control button{width:36px;height:40px}
  .lunch-v549 .menu-item-name{font-size:15px}
  .lunch-v549 .group-title-row{flex-wrap:wrap}
  .lunch-v549 .sync-status{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){
  .lunch-v549 *,.lunch-v549 *:before,.lunch-v549 *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
