/* Photo cards extend the existing menu; order/history/reaction behavior is shared. */
#dishGrid.dish-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
#dishGrid .dish-card{padding:0;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;border-radius:14px;background:#fff}
#dishGrid .dish-photo{position:relative;display:block;flex:none;width:100%;aspect-ratio:4/3;overflow:hidden;border:0;border-bottom:1px solid #f0f0ec;padding:0;border-radius:0;background:#f2f1ec;color:#7b8178}
#dishGrid button.dish-photo:hover .dish-photo-image{filter:brightness(.96)}
#dishGrid .dish-photo-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#dishGrid .dish-photo--drink .dish-photo-image{object-fit:contain;background:#faf9f6}

#dishGrid .dish-photo-fallback{display:none;position:absolute;inset:0;align-items:center;justify-content:center;flex-direction:column;gap:9px;font-size:12px}
#dishGrid .dish-photo-fallback img,#dishGrid .dish-photo-placeholder{width:40px;height:40px;opacity:.55}
#dishGrid .dish-photo--failed .dish-photo-fallback{display:flex}
#dishGrid .dish-photo--missing{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;font-size:12px}
#dishGrid .dish-photo-body{padding:14px;flex:1;min-width:0;display:flex;flex-direction:column}
#dishGrid .dish-card-heading{display:block;min-width:0;margin:0}
#dishGrid .dish-card-heading .dish-name{font-size:17px;line-height:1.45;font-weight:650;overflow-wrap:anywhere}
#dishGrid .dish-unit{margin-top:7px;gap:7px;flex-wrap:wrap;align-items:baseline;font-size:11px;line-height:1.5}
#dishGrid .dish-unit .dish-times{margin-left:0;font-size:11px;white-space:nowrap}
#dishGrid .dish-reactions{margin:9px 0 8px;align-items:center;gap:12px;flex-wrap:wrap}
#dishGrid .reaction-choice{gap:0}
#dishGrid .dish-reaction{min-width:30px;min-height:34px;padding:5px}
#dishGrid .reaction-count{min-width:27px;min-height:34px;padding:4px 5px}
#dishGrid .dish-bottom{margin-top:auto;padding-top:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#dishGrid .dish-bottom>.price{margin-right:auto;font-size:21px;line-height:1.4;white-space:nowrap}
#dishGrid .dish-bottom .price small{font-size:11px}
#dishGrid .dish-controls{margin-left:auto;gap:5px}
#dishGrid .dish-quantity{min-width:16px}
#dishGrid .add-button,#dishGrid .subtract-button{width:36px;height:36px;border-radius:10px}
#dishGrid .variant-button{min-height:36px;padding:7px 9px;white-space:nowrap;font-size:12px}
.dish-photo-dialog{padding:0;border:0;border-radius:18px;width:min(580px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;color:var(--ink);background:#fff;box-shadow:0 18px 80px #0003}
.dish-photo-dialog::backdrop{background:#151a176b}
.dish-photo-dialog-heading{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.dish-photo-dialog-heading h2{font-size:19px;overflow-wrap:anywhere}
.dish-photo-large-wrap{background:#f5f4f0;min-height:180px;display:grid;place-items:center}
.dish-photo-large{width:100%;height:auto;max-height:56dvh;object-fit:contain;display:block}
.dish-photo-error{padding:35px 20px;color:#7d837b;font-size:13px;text-align:center}
.dish-photo-dialog-body{padding:18px 20px}
.dish-photo-disclaimer{font-size:12px;color:#8a8f84;line-height:1.6}
.dish-photo-credit{font-size:11px;color:#808779;line-height:1.8;margin-top:10px;overflow-wrap:anywhere}
.dish-photo-credit summary{cursor:pointer;min-height:30px;display:list-item}
.dish-photo-credit p{margin:6px 0}
.dish-photo-credit a{color:#526f48;text-decoration:underline;text-underline-offset:2px}
.dish-photo-dialog-actions{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.dish-photo-dialog-actions .price{font-size:24px;color:var(--accent)}
.dish-photo-dialog-actions .price small{font-size:12px;font-weight:400;color:#888f81}
@media(min-width:1600px){#dishGrid.dish-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){#dishGrid.dish-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#dishGrid .dish-photo-body{padding:11px}#dishGrid .dish-card-heading .dish-name{font-size:15px}#dishGrid .dish-bottom>.price{font-size:19px}#dishGrid .dish-reactions{gap:7px;margin:6px 0}#dishGrid .dish-reaction,#dishGrid .reaction-count{min-width:30px;min-height:40px}#dishGrid .add-button,#dishGrid .subtract-button{width:32px;height:36px}#dishGrid .dish-controls{gap:3px}#dishGrid .dish-unit{row-gap:2px}#dishGrid .dish-unit>span:first-child{display:none}#dishGrid .dish-unit>span:has(.selected-text){display:inline}.dish-photo-dialog-heading{padding:14px 16px}.dish-photo-dialog-body{padding:16px}}
@media(max-width:360px){#dishGrid .dish-photo-body{padding:9px}#dishGrid.dish-grid{gap:8px}#dishGrid .dish-reactions{gap:3px}#dishGrid .dish-reaction,#dishGrid .reaction-count{min-width:26px}#dishGrid .dish-bottom{gap:6px}#dishGrid .dish-controls{margin-left:0}}

/* Both layouts use the same cards, counters and event handlers. */
.menu-result{flex-wrap:wrap;gap:10px}
.menu-layout-toggle{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid #e7e8e2;border-radius:9px;background:#f6f6f3}
.menu-layout-toggle button{border:0;background:transparent;color:#747b70;border-radius:6px;min-height:34px;padding:6px 10px;font-size:12px;white-space:nowrap}
.menu-layout-toggle button[aria-pressed=true]{background:#fff0e8;color:#bd4c1d;font-weight:650}
.menu-layout-toggle button:hover{background:#edece6}
.menu-layout-toggle button[aria-pressed=true]:hover{background:#ffe7d8}
#dishGrid[data-menu-layout=list]{grid-template-columns:minmax(0,1fr);gap:10px}
#dishGrid[data-menu-layout=list] .dish-card{display:flex;flex-direction:row;align-items:stretch;gap:0;min-height:152px}
#dishGrid[data-menu-layout=list] .dish-photo{width:144px;align-self:center;aspect-ratio:1;flex:none;margin:12px 0 12px 12px;border:0;border-radius:10px}
#dishGrid[data-menu-layout=list] .dish-photo-body{min-width:0;padding:14px 16px}
#dishGrid[data-menu-layout=list] .dish-reactions{margin:6px 0}
#dishGrid[data-menu-layout=list] .dish-bottom{padding-top:0}
@media(max-width:760px){.menu-filter-actions{justify-content:flex-start;max-width:100%}.menu-layout-toggle button{font-size:11px;padding:6px 9px}#dishGrid[data-menu-layout=list] .dish-photo{width:108px;margin:12px 0 12px 12px}#dishGrid[data-menu-layout=list] .dish-photo-body{padding:12px}#dishGrid[data-menu-layout=list] .dish-card{min-height:148px}#dishGrid[data-menu-layout=list] .dish-reactions{gap:7px;margin:3px 0}#dishGrid[data-menu-layout=list] .dish-unit>span:first-child{display:inline}#dishGrid[data-menu-layout=list] .dish-unit{margin-top:3px}}
@media(max-width:360px){#dishGrid[data-menu-layout=list] .dish-photo{width:88px;margin-left:10px}#dishGrid[data-menu-layout=list] .dish-photo-body{padding:10px}#dishGrid[data-menu-layout=list] .dish-unit>span:first-child{display:none}#dishGrid[data-menu-layout=list] .dish-reactions{gap:2px}}
@media(pointer:coarse){.menu-layout-toggle button{min-height:40px}}

/* The menu's actual available width determines density, not the viewport alone. */
#menuPanel{container-type:inline-size;container-name:lunch-menu}
@container lunch-menu (min-width:560px){
  #dishGrid[data-menu-layout=list]{grid-template-columns:repeat(2,minmax(0,1fr))}
  #dishGrid[data-menu-layout=list] .dish-photo{width:88px;margin:10px 0 10px 10px}
  #dishGrid[data-menu-layout=list] .dish-photo-body{padding:10px}
  #dishGrid[data-menu-layout=list] .dish-card{min-height:148px}
  #dishGrid[data-menu-layout=list] .dish-card-heading .dish-name{font-size:15px}
  #dishGrid[data-menu-layout=list] .dish-unit{margin-top:4px;font-size:11px;row-gap:2px}
  #dishGrid[data-menu-layout=list] .dish-unit>span:first-child{display:none}
  #dishGrid[data-menu-layout=list] .dish-unit>span:has(.selected-text){display:inline}
  #dishGrid[data-menu-layout=list] .dish-reactions{gap:4px;margin:4px 0}
  #dishGrid[data-menu-layout=list] .dish-reaction,#dishGrid[data-menu-layout=list] .reaction-count{min-width:26px;min-height:34px}
  #dishGrid[data-menu-layout=list] .dish-bottom>.price{font-size:19px}
  #dishGrid[data-menu-layout=list] .dish-controls{gap:3px}
  #dishGrid[data-menu-layout=list] .add-button,#dishGrid[data-menu-layout=list] .subtract-button{width:32px;height:34px}
}
@container lunch-menu (min-width:860px){
  #dishGrid[data-menu-layout=list]{grid-template-columns:repeat(3,minmax(0,1fr))}
}
