:root { color-scheme: light; }
* { letter-spacing: 0; }
html { scroll-behavior: smooth; background: #FFFFFF; }
.diner-root { scrollbar-width: none; }
.diner-root::-webkit-scrollbar { display: none; }
body { min-width: 320px; }
body.diner-page {
  width: min(393px, 100vw);
  height: min(852px, 100dvh);
  min-height: 0;
  margin: max(0px, calc((100dvh - 852px) / 2)) auto 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  box-shadow: 0 18px 54px rgba(26, 120, 64, .16);
  scrollbar-width: none;
  scroll-behavior: smooth;
}
body.diner-page::-webkit-scrollbar { display: none; }
.diner-page > .diner-header {
  position: fixed;
  top: max(0px, calc((100dvh - 852px) / 2));
  left: 50%;
  z-index: 45;
  width: min(393px, 100vw);
  transform: translateX(-50%);
  background: #FFFFFF;
}
.diner-page header > div { max-width: 393px; padding-left: 16px; padding-right: 16px; }
.diner-page main { max-width: 393px; padding: 84px 12px 128px; }
.diner-page .diner-hero { grid-template-columns: minmax(0, 1fr); }
.diner-page .diner-hero.has-chef-photo { grid-template-columns: minmax(0, 1fr) 78px; gap: 12px; }
.diner-page .diner-hero h1 { font-size: 1.875rem; }
.diner-page .diner-eta { display: none; }
.diner-chef-photo { width: 78px; height: 128px; border-radius: 6px; overflow: hidden; }
.diner-page section[aria-label="菜品目录"] { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; }
.diner-page #category-list { top: max(80px, calc((100dvh - 852px) / 2 + 80px)); }
.diner-page #menu-grid { grid-template-columns: minmax(0, 1fr); }
.diner-page .category-menu-section { scroll-margin-top: max(84px, calc((100dvh - 852px) / 2 + 84px)); }
.diner-page .category-continuation { min-height: 52px; }
.diner-page .dish-card { grid-template-columns: 108px minmax(0, 1fr); }
.diner-page #cart-bar {
  bottom: max(0px, calc((100dvh - 852px) / 2));
  right: auto;
  left: 50%;
  width: 393px;
  max-width: 100vw;
  margin-left: -196.5px;
  padding-left: 12px;
  padding-right: 12px;
}
.diner-page #cart-modal,
.diner-page #dish-detail-modal,
.diner-page #avatar-crop-modal {
  top: max(0px, calc((100dvh - 852px) / 2));
  right: auto;
  bottom: auto;
  left: 50%;
  width: 393px;
  max-width: 100vw;
  height: min(852px, 100dvh);
  margin-left: -196.5px;
  align-items: flex-end;
  padding: 0;
}
.diner-page #identity-modal {
  top: max(0px, calc((100dvh - 852px) / 2));
  right: auto;
  bottom: auto;
  left: 50%;
  width: 393px;
  max-width: 100vw;
  height: min(852px, 100dvh);
  margin-left: -196.5px;
  padding: 0;
}
.diner-page #cart-modal .modal-panel { max-width: 393px; border-radius: 6px 6px 0 0; padding: 20px; }
.diner-page #dish-detail-modal .modal-panel { border-radius: 6px 6px 0 0; }
.diner-page #dish-detail-panel { transition: height .24s ease; }
.diner-page #dish-detail-panel.is-review-expanded { height: 80% !important; }
.dish-detail-compact { max-height: 0; min-height: 0; opacity: 0; transition: max-height .2s ease, min-height .2s ease, opacity .15s ease, border-color .2s ease; }
.is-review-expanded .dish-detail-compact { max-height: 64px; min-height: 64px; opacity: 1; border-color: rgba(26, 120, 64, .1); }
.dish-detail-compact-image { width: 44px; height: 44px; border-radius: 6px; overflow: hidden; flex: 0 0 44px; }
.diner-page #dish-detail-modal .detail-dish-image {
  width: auto;
  height: min(245px, 29dvh);
}
.diner-page #toast { top: max(80px, calc((100dvh - 852px) / 2 + 80px)); max-width: 360px; }
.diner-page #my-orders-sync { display: none; }
@media (max-width: 393px) {
  .diner-page #cart-bar, .diner-page #cart-modal, .diner-page #dish-detail-modal, .diner-page #identity-modal, .diner-page #avatar-crop-modal { left: 0; width: 100vw; margin-left: 0; }
}
.kitchen-page > header > div,
.kitchen-page > nav > div,
.kitchen-page > main { width: 100%; }
.order-grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 768px) { .order-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .order-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .order-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.workflow-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.workflow-grid .order-grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .workflow-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } }
@media (min-width: 1024px) {
  .kitchen-page > header > div { min-height: 80px; }
  .kitchen-page > nav > div { min-height: 56px; }
  .kitchen-page > main { min-height: calc(100vh - 136px); }
}
button, input, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(26, 120, 64, 0.24);
  outline-offset: 2px;
}
.category-button { min-height: 46px; transition: background-color .2s, color .2s, transform .2s; }
.category-button[aria-current="true"] { background: #1A7840; color: #FFFFFF; }
.category-button:active { transform: scale(.97); }
.dish-image { background: #E8EEEA; }
.chef-photo-preview { aspect-ratio: 3 / 5; }
.dish-image,
.kitchen-dish-image,
.dish-image-preview,
.library-dish-image,
.cart-dish-image,
.detail-dish-image {
  aspect-ratio: var(--dish-image-aspect, 6 / 7);
  border-radius: 6px;
  overflow: hidden;
}
.dish-image img,
.kitchen-dish-image img,
.dish-image-preview img,
.library-dish-image,
.cart-dish-image img,
.detail-dish-image img { border-radius: inherit; }
.dish-image img { transition: transform .35s ease; }
.dish-card:hover .dish-image img { transform: scale(1.045); }
.dish-card-actions { scrollbar-width: none; }
.dish-card-actions::-webkit-scrollbar { display: none; }
.quantity-button { width: 32px; height: 32px; flex: 0 0 32px; }
.dish-card-selected-quantity {
  position: absolute;
  top: 50%;
  right: calc(100% + 4px);
  min-width: 20px;
  transform: translateY(-50%);
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  color: #173321;
  pointer-events: none;
}
.diner-page[data-image-aspect="4:3"] .dish-card-footer { gap: 4px; }
.diner-page[data-image-aspect="4:3"] .dish-card-name { font-size: 14px; font-weight: 600; line-height: 1.25; }
.diner-page[data-image-aspect="4:3"] .dish-card-price { flex: 1 1 0; overflow: hidden; }
.diner-page[data-image-aspect="4:3"] .dish-card-price > strong,
.diner-page[data-image-aspect="4:3"] .dish-card-price > span > strong { font-size: 14px; font-weight: 600; }
.diner-page[data-image-aspect="4:3"] .dish-card-price del { font-size: 9px; font-weight: 500; }
.diner-page[data-image-aspect="4:3"] .dish-card-meta { max-width: 100%; overflow: hidden; gap: 3px 5px; }
.diner-page[data-image-aspect="4:3"] .dish-card-cart-control { height: 28px; gap: 2px; flex: 0 0 auto; }
.diner-page[data-image-aspect="4:3"] .dish-card .quantity-button { width: 26px; height: 26px; flex-basis: 26px; }
.diner-page[data-image-aspect="4:3"] .dish-card .quantity-button svg { width: 14px; height: 14px; }
.diner-page[data-image-aspect="4:3"] .dish-card-selected-quantity { right: calc(100% + 3px); min-width: 18px; font-size: 12px; }
.diner-page[data-image-aspect="4:3"] .dish-card-quantity { width: 16px; flex-basis: 16px; font-size: 12px; line-height: 1; }
.modal.is-open { display: flex; }
.modal.is-open .modal-panel { animation: panel-in .24s ease-out both; }
.status-dot { width: 7px; height: 7px; border-radius: 999px; flex: 0 0 7px; }
.status-pending .status-dot { background: #FFFFFF; border: 1px solid #1A7840; }
.status-cooking .status-dot, .status-ready .status-dot { background: #1A7840; }
.kitchen-tab[aria-selected="true"] { background: #1A7840; color: #FFFFFF; }
.status-filter { min-height: 92px; transition: background-color .18s, border-color .18s, color .18s; }
.status-filter[aria-pressed="true"] { border-color: #1A7840; background: #1A7840; color: #FFFFFF; }
.status-filter[aria-pressed="true"] span { color: rgba(255, 255, 255, .72); }
.batch-mode-button[aria-pressed="true"] { border-color: #1A7840; background: #1A7840; color: #FFFFFF; }
.workspace-tab { border-color: transparent; color: rgba(23, 51, 33, .55); }
.workspace-tab[aria-current="page"] { border-color: #1A7840; color: #1A7840; }
.admin-input {
  height: 48px;
  width: 100%;
  border: 1px solid rgba(26, 120, 64, .16);
  border-radius: 6px;
  background: #FFFFFF;
  padding: 0 14px;
  color: #173321;
  outline: none;
}
.admin-input:focus { border-color: #1A7840; box-shadow: 0 0 0 3px rgba(26, 120, 64, .1); }
.availability-switch span { left: 4px; }
.availability-switch[aria-checked="true"] { background: #1A7840; }
.availability-switch[aria-checked="true"] span { left: 24px; }
.cropper-view-box { outline-color: rgba(26, 120, 64, .9); }
.cropper-line, .cropper-point { background-color: #1A7840; }
.cropper-dashed { border-color: rgba(255, 255, 255, .7); }
.cropper-center::before, .cropper-center::after { background-color: #FFFFFF; }
#avatar-crop-modal .cropper-view-box { border-radius: 999px; box-shadow: 0 0 0 1px #FFFFFF; }
#avatar-crop-modal .cropper-face { border-radius: 999px; }
@keyframes panel-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
