/* Виджет: Меню столовой */
/* Профиль дисплея (см. date/time): плотность текста и иконок снимается с .player-wrap[data-screen-display-profile]. */
.player-cell.widget-menu {
  --widget-menu-prof-d: 1;
  --widget-menu-prof-ico: 1;
}

.player-wrap[data-screen-display-profile="tv_1024"] .player-cell.widget-menu {
  --widget-menu-prof-d: 0.88;
  --widget-menu-prof-ico: 0.88;
}

.player-wrap[data-screen-display-profile="tv_1920"] .player-cell.widget-menu,
.player-wrap[data-screen-display-profile="custom"] .player-cell.widget-menu {
  --widget-menu-prof-d: 1;
  --widget-menu-prof-ico: 1;
}

.player-wrap[data-screen-display-profile="tv_2560"] .player-cell.widget-menu,
.player-wrap[data-screen-display-profile="kiosk_1440_2560"] .player-cell.widget-menu {
  --widget-menu-prof-d: 1.08;
  --widget-menu-prof-ico: 1.05;
}

.player-wrap[data-screen-display-profile="tv_3840"] .player-cell.widget-menu,
.player-wrap[data-screen-display-profile="kiosk_2160_3840"] .player-cell.widget-menu {
  --widget-menu-prof-d: 1.16;
  --widget-menu-prof-ico: 1.1;
}

.player-wrap[data-screen-display-profile="kiosk_1080_1920"] .player-cell.widget-menu {
  --widget-menu-prof-d: 1;
  --widget-menu-prof-ico: 1;
}

.widget-menu { flex-direction: column; align-items: stretch; text-align: center; padding: var(--widget-pad-single); min-width: 0; overflow: hidden; box-sizing: border-box; }
/* Карточка — flex-ребёнок ячейки: без min-width:0 строка «название — цена» раздувает сетку за пределы экрана */
.widget-menu .widget-menu-inner.widget-card {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  align-self: stretch;
  justify-content: center;
  align-items: stretch;
}
.widget-menu .widget-menu-inner {
  flex-direction: column;
  gap: var(--widget-gap);
  align-items: stretch;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
  --widget-menu-user-item-ico: 1;
  --widget-menu-user-cat-ico: 1;
  --widget-menu-user-text-pct: 100;
  font-size: calc(1em * var(--widget-menu-prof-d, 1) * (var(--widget-menu-user-text-pct, 100) / 100));
}
.widget-menu-icon::before { content: ''; position: absolute; left: 50%; top: 30%; transform: translate(-50%, 0); width: 52%; height: 2px; background: var(--color-primary); border-radius: 1px; box-shadow: 0 0.28em 0 var(--color-primary), 0 0.56em 0 var(--color-primary); opacity: 0.9; }
.widget-menu--no-icon .widget-menu-icon { display: none; }
.widget-menu-main { display: flex; flex-direction: column; align-items: stretch; gap: 0.5em; min-width: 0; }
.widget-menu .widget-menu-title { font-weight: 700; font-size: 0.75em; color: var(--color-text); margin: 0 0 0.25em; padding-bottom: 0.4em; text-transform: uppercase; letter-spacing: 0.12em; border-bottom: 1px solid var(--glass-border); opacity: 0.92; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; hyphens: auto; }
.widget-menu .widget-menu-categories { display: flex; flex-direction: column; gap: 0.6em; width: 100%; min-width: 0; max-width: 100%; }
.widget-menu .widget-menu-category { display: flex; flex-direction: column; gap: 0.25em; }
.widget-menu .widget-menu-category-header { display: flex; align-items: center; gap: 0.4em; flex-wrap: nowrap; padding-bottom: 0.2em; margin-bottom: 0.1em; border-bottom: 1px solid rgba(255, 255, 255, 0.12); min-width: 0; max-width: 100%; }
[data-theme="light"] .widget-menu .widget-menu-category-header { border-bottom-color: rgba(0, 0, 0, 0.1); }
.widget-menu .widget-menu-category-icon, .widget-menu .widget-menu-category-header .widget-menu-icon-builtin {
  width: calc(1.1em * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-cat-ico, 1));
  height: calc(1.1em * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-cat-ico, 1));
  min-width: calc(16px * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-cat-ico, 1));
  min-height: calc(16px * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-cat-ico, 1));
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0.85;
  color: var(--color-primary);
  vertical-align: middle;
}
.widget-menu .widget-menu-category-icon img, .widget-menu .widget-menu-icon-builtin svg { width: 100%; height: 100%; object-fit: contain; display: block; }
.widget-menu .widget-menu-item-icon, .widget-menu .widget-menu-item .widget-menu-icon-builtin {
  width: calc(1.1em * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-item-ico, 1));
  height: calc(1.1em * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-item-ico, 1));
  min-width: calc(1.1em * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-item-ico, 1));
  min-height: calc(1.1em * var(--widget-menu-prof-ico, 1) * var(--widget-menu-user-item-ico, 1));
  margin-right: 0.35em;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  opacity: 0.85;
}
.widget-menu .widget-menu-item .widget-menu-icon-builtin svg, .widget-menu .widget-menu-item-icon img { width: 100%; height: 100%; object-fit: contain; }
.widget-menu img.widget-menu-item-icon.widget-menu-icon-img--dish {
  object-fit: cover;
  border-radius: var(--radius-sm, 6px);
  align-self: center;
}
.widget-menu .widget-menu-category-title { font-size: 0.7em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-primary); opacity: 0.95; flex: 1 1 0; min-width: 0; max-width: 100%; text-align: left; overflow-wrap: anywhere; word-break: break-word; hyphens: auto; }
[data-theme="light"] .widget-menu .widget-menu-category-title { color: var(--color-primary); }
.widget-menu .widget-menu-items { display: flex; flex-direction: column; align-items: stretch; gap: 0; width: 100%; max-width: 100%; background: rgba(255, 255, 255, 0.03); border-radius: var(--radius-sm, 8px); padding: 0.25em 0.6em; }
[data-theme="light"] .widget-menu .widget-menu-items { background: rgba(0, 0, 0, 0.04); }
.widget-menu .widget-menu-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.12em;
  font-size: 0.92em;
  color: var(--color-text);
  line-height: 1.4;
  padding: 0.45em 0.15em;
  min-height: 1.5em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  text-align: left;
}
.widget-menu .widget-menu-item:last-child { border-bottom: none; }
.widget-menu .widget-menu-item-top {
  display: flex;
  align-items: flex-start;
  gap: 0.35em;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.widget-menu .widget-menu-item-body {
  flex: 1;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
/* Grid: цена в правой колонке без «растягивания» пустоты как у space-between при широком превью */
.widget-menu .widget-menu-item-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  column-gap: 0.45em;
  row-gap: 0.2em;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.widget-menu .widget-menu-item-name-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25em 0.4em;
  min-width: 0;
  max-width: 100%;
}
.widget-menu .widget-menu-item-badges {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25em 0.35em;
  max-width: 100%;
}
.widget-menu .widget-menu-item-name { font-weight: 500; opacity: 0.95; min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; hyphens: auto; }
.widget-menu .widget-menu-item-actions {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  gap: 0.35em;
  justify-self: end;
  justify-content: flex-end;
  text-align: right;
}
.widget-menu .widget-menu-item-price { font-weight: 600; font-size: 1.02em; color: var(--color-accent, var(--color-primary, #06b6d4)); font-variant-numeric: tabular-nums; letter-spacing: 0.02em; white-space: nowrap; }
.widget-menu .widget-menu-badge {
  font-size: 0.62em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.12em 0.38em;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--color-text-muted);
  background: rgba(255, 255, 255, 0.06);
}
.widget-menu .widget-menu-badge--veg { color: #86efac; border-color: rgba(134, 239, 172, 0.5); background: rgba(34, 197, 94, 0.12); }
.widget-menu .widget-menu-badge--vegan { color: #a7f3d0; border-color: rgba(167, 243, 208, 0.45); background: rgba(16, 185, 129, 0.12); }
.widget-menu .widget-menu-badge--post { color: #c4b5fd; border-color: rgba(196, 181, 253, 0.45); background: rgba(124, 58, 237, 0.15); }
[data-theme="light"] .widget-menu .widget-menu-badge { border-color: rgba(0, 0, 0, 0.12); background: rgba(0, 0, 0, 0.04); }
[data-theme="light"] .widget-menu .widget-menu-badge--veg { color: #166534; background: rgba(34, 197, 94, 0.15); }
[data-theme="light"] .widget-menu .widget-menu-badge--vegan { color: #047857; background: rgba(16, 185, 129, 0.14); }
[data-theme="light"] .widget-menu .widget-menu-badge--post { color: #5b21b6; background: rgba(124, 58, 237, 0.12); }
.widget-menu .widget-menu-item-combo {
  margin: 0.15em 0 0 0;
  padding: 0 0 0 1.05em;
  font-size: 0.82em;
  color: var(--color-text-muted);
  line-height: 1.35;
  list-style: disc;
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.widget-menu .widget-menu-item-combo li { margin: 0.08em 0; overflow-wrap: anywhere; word-break: break-word; }
.widget-menu .widget-menu-item-nutrition {
  font-size: 0.78em;
  color: var(--color-text-muted);
  opacity: 0.92;
  margin: 0.08em 0 0 0;
  font-variant-numeric: tabular-nums;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.widget-menu .widget-menu-item-teaser {
  font-size: 0.78em;
  color: var(--color-text-muted);
  line-height: 1.3;
  margin: 0.12em 0 0 0;
  opacity: 0.88;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.widget-menu .widget-menu-item-info {
  appearance: none;
  -webkit-appearance: none;
  width: 1.35em;
  height: 1.35em;
  padding: 0;
  margin: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-text);
  font-size: 0.72em;
  font-weight: 700;
  font-style: italic;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  align-self: center;
  transition: background 0.15s ease, transform 0.12s ease;
}
.widget-menu .widget-menu-item-info:hover { background: rgba(99, 102, 241, 0.25); border-color: rgba(99, 102, 241, 0.55); }
.widget-menu .widget-menu-item-detail {
  display: none;
  margin: 0.25em 0 0 0;
  padding: 0.4em 0.5em;
  border-radius: var(--radius-sm, 6px);
  background: rgba(0, 0, 0, 0.2);
  font-size: 0.78em;
  line-height: 1.38;
  color: var(--color-text-muted);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  box-sizing: border-box;
}
.widget-menu .widget-menu-item-detail--inline {
  display: block;
}
[data-theme="light"] .widget-menu .widget-menu-item-detail { background: rgba(0, 0, 0, 0.06); }
.widget-menu .widget-menu-item--detail-open .widget-menu-item-detail:not(.widget-menu-item-detail--inline) { display: block; }
.widget-menu .widget-menu-item-detail-block {
  display: block;
  margin: 0.28em 0 0 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.widget-menu .widget-menu-item-detail-block:first-child { margin-top: 0; }
.widget-menu .widget-menu-item-detail-label { font-weight: 700; color: var(--color-text); margin-right: 0.25em; font-size: 0.96em; }
[data-theme="light"] .widget-menu .widget-menu-item-price { color: var(--color-accent, #0891b2); }
.widget-menu .widget-menu-placeholder { color: var(--color-text-muted); font-size: 0.9em; padding: 0.6em 0; }
.widget-menu .widget-menu-placeholder--error { color: var(--color-danger, #e57373); }
.widget-menu .widget-menu-categories--load { padding: 0.6em 0; }

/* Киоск (портрет): масштаб и удобочитаемость — согласовано с .player-cell.font-size reset в main.css */
.player-wrap[data-screen-orientation="portrait"] .widget-menu {
    font-size: clamp(0.88rem, min(3.2cqmax, 2.8cqh), 1.25rem);
}

.player-wrap[data-screen-orientation="portrait"] .widget-menu .widget-menu-category-title {
    font-size: 1.05em;
}

.player-wrap[data-screen-orientation="portrait"] .widget-menu .widget-menu-item-top {
    flex-direction: column;
    align-items: flex-start;
}

.player-wrap[data-screen-orientation="portrait"] .widget-menu .widget-menu-item-row {
    grid-template-columns: minmax(0, 1fr);
}

.player-wrap[data-screen-orientation="portrait"] .widget-menu .widget-menu-item-actions {
    width: 100%;
    justify-self: end;
    justify-content: flex-end;
}
