/* The chat's chef's menu. One committed look, deliberately not themed with the rest of the app: a
   restaurant menu is ink, ivory and gold in any light. Everything is scoped under .menu-overlay (the
   full-screen sheet) or the chat-bubble blocks (.menu-ask, .menu-card, .menu-status, .plan-card) so
   it cannot leak into the Amber Hearth screens. Logical properties throughout, for Hebrew RTL. */

.menu-overlay {
  --ink: #0D0B09; --ink-2: #16120E; --ivory: #F2E9D7; --ivory-dim: #B5AA93;
  --gold: #C8A45A; --gold-hi: #E7CB8A; --gold-dim: #8B7238;
  --hair: rgba(200,164,90,.34); --hair-soft: rgba(200,164,90,.16);
  --warn: #D8917E; --warn-bg: rgba(216,145,126,.1);
  --serif: 'Cormorant Garamond','Frank Ruhl Libre','Didot',Georgia,serif;
  --sans: 'Jost','Frank Ruhl Libre','Helvetica Neue',Arial,sans-serif;
  --dir-end: right; --dir-start: left;
  position: fixed; inset: 0; z-index: 40; background: var(--ink); color: var(--ivory); font-family: var(--serif);
  display: flex; justify-content: center;
}
html[dir="rtl"] .menu-overlay { --dir-end: left; --dir-start: right; }
body.menu-open { overflow: hidden; }
.menu-overlay button:focus-visible, .menu-overlay a:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 3px; }

.menu-sheet { position: relative; width: 100%; max-width: 560px; height: 100%; display: flex; flex-direction: column; }
.menu-frame { position: absolute; inset: 10px; border: 1px solid var(--hair); pointer-events: none; z-index: 5; border-radius: 22px; }
.menu-frame::after { content: ""; position: absolute; inset: 4px; border: 1px solid var(--hair-soft); border-radius: 18px; }
.menu-close {
  position: absolute; top: calc(env(safe-area-inset-top, 0px) + 18px); inset-inline-end: 22px; z-index: 8; width: 36px; height: 36px;
  background: none; border: 0; color: var(--ivory-dim); font-size: 1.1rem; cursor: pointer;
}
.menu-scroll { flex: 1; overflow-y: auto; padding-block: calc(env(safe-area-inset-top, 0px) + 28px) 24px; padding-inline: 30px; scrollbar-width: none; }
.menu-scroll::-webkit-scrollbar { display: none; }

.menu-mast { text-align: center; padding-block: 14px 8px; }
.menu-mast .house { font: 400 .64rem var(--sans); letter-spacing: .42em; text-transform: uppercase; color: var(--gold); padding-inline-start: .42em; }
.menu-fleuron { display: block; margin: 12px auto 8px; width: 150px; height: 14px; }
.menu-mast h2 { font-weight: 500; font-size: 2.05rem; line-height: 1.08; margin: 6px 0; letter-spacing: .01em; text-wrap: balance; color: var(--ivory); }
.menu-mast .occasion { font-style: italic; font-size: 1.02rem; color: var(--ivory-dim); }
.menu-badge { display: inline-block; margin-top: 10px; font: 400 .6rem var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); border: 1px solid var(--hair); padding: 5px 10px; border-radius: 999px; }
.menu-note { text-align: center; font: 300 .74rem var(--sans); letter-spacing: .04em; color: var(--ivory-dim); margin: 14px 0 4px; }

.menu-course { margin-top: 30px; }
.menu-course h3 { display: flex; align-items: center; gap: 14px; margin: 0 0 4px; font-weight: 500; font-size: 1.02rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold); }
.menu-course h3::before { content: ""; flex: 1; height: 1px; background: linear-gradient(to var(--dir-end), transparent, var(--hair)); }
.menu-course h3::after { content: ""; flex: 1; height: 1px; background: linear-gradient(to var(--dir-start), transparent, var(--hair)); }
.menu-course h3 span { padding-inline-start: .3em; }
.menu-hint { text-align: center; font: italic 400 .8rem var(--serif); color: var(--ivory-dim); margin: 0 0 6px; min-height: 1.2em; }

.menu-dish {
  display: grid; grid-template-columns: 24px 1fr; gap: 14px; align-items: start; width: 100%; text-align: start; background: none;
  border: 0; border-bottom: 1px solid var(--hair-soft); padding-block: 15px; padding-inline: 2px; color: inherit; cursor: pointer; font-family: inherit;
}
.menu-course .menu-dish:last-child { border-bottom: 0; }
.menu-ring { width: 20px; height: 20px; margin-top: 4px; border: 1px solid var(--gold-dim); border-radius: 50%; display: grid; place-items: center; transition: background .2s, border-color .2s; }
.menu-ring svg { width: 11px; height: 11px; opacity: 0; transition: opacity .2s; }
.menu-dish[aria-checked="true"] .menu-ring { background: var(--gold); border-color: var(--gold-hi); }
.menu-dish[aria-checked="true"] .menu-ring svg { opacity: 1; }
.menu-dish .name { display: block; font-weight: 500; font-size: 1.28rem; line-height: 1.18; color: var(--ivory); transition: color .2s; text-wrap: balance; }
.menu-dish[aria-checked="true"] .name, .menu-dish:hover .name { color: var(--gold-hi); }
.menu-dish .desc { display: block; font-style: italic; font-size: .98rem; line-height: 1.35; color: var(--ivory-dim); margin-top: 3px; }
.menu-dish .src { display: block; font: 400 .6rem var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-dim); margin-top: 7px; }

.menu-dock { position: relative; z-index: 6; padding-block: 34px calc(env(safe-area-inset-bottom, 0px) + 22px); padding-inline: 30px; text-align: center; background: linear-gradient(to top, var(--ink) 72%, rgba(13,11,9,0)); margin-top: -34px; }
.menu-cta { width: 100%; font: 500 .78rem var(--sans); letter-spacing: .26em; text-transform: uppercase; border: 1px solid var(--gold); color: var(--gold-hi); background: transparent; padding: 15px 10px; border-radius: 2px; cursor: pointer; transition: background .2s, color .2s; }
.menu-cta:hover:not(:disabled), .menu-cta.fill { background: var(--gold); color: var(--ink); }
.menu-cta:disabled { border-color: var(--hair); color: var(--ivory-dim); cursor: default; }
.menu-dock .count { font: 300 .72rem var(--sans); letter-spacing: .06em; color: var(--ivory-dim); margin-bottom: 9px; }
.menu-link { display: block; margin: 12px auto 0; font: 300 .74rem var(--sans); letter-spacing: .1em; color: var(--ivory-dim); background: none; border: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }

.menu-wait { min-height: 100%; display: grid; place-content: center; text-align: center; padding-inline: 30px; gap: 18px; }
.menu-wait p { font-style: italic; font-size: 1.3rem; margin: 0; }
.menu-wait .sub { font: 300 .74rem var(--sans); color: var(--ivory-dim); letter-spacing: .04em; }
.menu-wait .bar { width: 120px; height: 1px; background: var(--hair); margin: 0 auto; position: relative; overflow: hidden; }
.menu-wait .bar::after { content: ""; position: absolute; inset: 0; width: 40%; background: var(--gold-hi); animation: menu-sweep 1.3s ease-in-out infinite; }
@keyframes menu-sweep { from { transform: translateX(-100%); } to { transform: translateX(260%); } }

.menu-chosen { margin-top: 30px; }
.menu-chosen .label { text-align: center; font: 400 .66rem var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--gold); }
.menu-chosen h4 { font-weight: 500; font-size: 1.7rem; line-height: 1.12; text-align: center; margin: 6px 0 4px; text-wrap: balance; color: var(--gold-hi); }
.menu-chosen .src { text-align: center; font: 400 .6rem var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-dim); }
.menu-chosen .src a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.menu-recipe { margin-top: 14px; border-block: 1px solid var(--hair-soft); padding-block: 4px 14px; }
.menu-recipe summary { cursor: pointer; font: 400 .7rem var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--ivory-dim); padding-block: 12px; list-style: none; text-align: center; }
.menu-recipe summary::-webkit-details-marker { display: none; }
.menu-recipe .serves { text-align: center; font-style: italic; color: var(--ivory-dim); margin-bottom: 8px; }
.menu-recipe h5 { font: 400 .64rem var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--gold); margin: 16px 0 6px; }
.menu-recipe ul { list-style: none; margin: 0; padding: 0; }
.menu-recipe li { font-size: 1.04rem; line-height: 1.4; padding-block: 3px; border-bottom: 1px dotted var(--hair-soft); }
.menu-recipe .method { white-space: pre-line; font-size: 1.04rem; line-height: 1.5; }
.menu-recipe .stub { font-style: italic; color: var(--ivory-dim); text-align: center; padding-block: 8px; }
.menu-recipe .stub a { color: var(--gold-hi); }

.menu-notebox { margin-top: 12px; padding: 12px 14px; border-radius: 4px; font-size: .98rem; line-height: 1.4; }
.menu-notebox .k { display: block; font: 500 .6rem var(--sans); letter-spacing: .22em; text-transform: uppercase; margin-bottom: 5px; }
.menu-notebox.warn { background: var(--warn-bg); border: 1px solid rgba(216,145,126,.4); } .menu-notebox.warn .k { color: var(--warn); }
.menu-notebox.swap { border: 1px solid var(--hair); } .menu-notebox.swap .k { color: var(--gold); }
.menu-notebox.miss { border: 1px dashed var(--hair); } .menu-notebox.miss .k { color: var(--ivory-dim); }
.menu-notebox .line { margin-top: 4px; } .menu-notebox .line b { color: var(--gold-hi); font-weight: 500; }
.menu-mini { margin-top: 8px; font: 400 .62rem var(--sans); letter-spacing: .14em; text-transform: uppercase; background: none; border: 1px solid var(--hair); color: var(--ivory); padding: 8px 12px; border-radius: 2px; cursor: pointer; }
.menu-mini.done { border-color: var(--gold); color: var(--gold-hi); }
.menu-acts { display: flex; gap: 8px; margin-top: 14px; }
.menu-acts button { flex: 1; font: 400 .64rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ivory); background: none; border: 1px solid var(--hair); padding: 11px 6px; border-radius: 2px; cursor: pointer; }
.menu-acts button.done { border-color: var(--gold); color: var(--gold-hi); }
.menu-acts button:disabled { opacity: .6; cursor: default; }

/* Chat-bubble blocks: sit inside the app's own bubbles, so they borrow its type and keep the gold. */
.menu-ask { margin-top: 10px; border: 1px solid #C8A45A; border-radius: 12px; padding: 14px; background: #16120E; color: #F2E9D7; }
.menu-ask h4 { margin: 0 0 4px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; font-size: 1.25rem; color: #E7CB8A; }
.menu-ask p { margin: 0 0 12px; font-size: .8rem; line-height: 1.5; color: #B5AA93; }
.menu-ask .row { display: flex; gap: 8px; flex-wrap: wrap; }
.menu-ask button, .menu-card button, .plan-card button.gold {
  flex: 1; font: 500 .7rem var(--font, system-ui), sans-serif; letter-spacing: .12em; text-transform: uppercase; padding: 12px 8px;
  border-radius: 2px; cursor: pointer; border: 1px solid #C8A45A; background: transparent; color: #E7CB8A;
}
.menu-ask button.primary, .menu-card button.primary, .plan-card button.gold.primary { background: #C8A45A; color: #0D0B09; }
.menu-card { margin-top: 10px; }
.menu-card .sub { margin-top: 6px; font-size: .75rem; color: var(--text-dim); text-align: center; }
.menu-status { margin-top: 10px; display: flex; align-items: center; gap: 8px; font-size: .85rem; color: var(--text-dim); }
.menu-failed { margin-top: 10px; font-size: .85rem; color: var(--text-dim); }
.menu-failed button { margin-top: 8px; }

.plan-card { margin-top: 10px; border: 1px solid #C8A45A; border-radius: 12px; padding: 14px; background: #16120E; color: #F2E9D7; }
.plan-card .day { font: 500 .62rem system-ui, sans-serif; letter-spacing: .22em; text-transform: uppercase; color: #C8A45A; margin: 12px 0 4px; }
.plan-card .day:first-child { margin-top: 0; }
.plan-card .slot { display: grid; grid-template-columns: 74px 1fr; gap: 10px; padding-block: 6px; border-bottom: 1px solid rgba(200,164,90,.16); font-size: .92rem; }
.plan-card .slot:last-of-type { border-bottom: 0; }
.plan-card .slot .when { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: #8B7238; padding-top: 3px; }
.plan-card .slot .what { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.12rem; line-height: 1.2; }
.plan-card .slot .what a, .plan-card .slot .what button.link { color: #E7CB8A; text-decoration: underline; text-underline-offset: 3px; background: none; border: 0; padding: 0; cursor: pointer; font: inherit; text-align: start; }
.plan-card .slot .from { display: block; font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: #8B7238; margin-top: 2px; }
.plan-card .slot.none .what { color: #B5AA93; font-style: italic; }
.plan-card button.gold { margin-top: 12px; width: 100%; }

@media (prefers-reduced-motion: reduce) { .menu-wait .bar::after { animation: none; width: 100%; } .menu-overlay * { transition: none !important; } }
