/* GYL Fizza widget · scoped under #gyl-fizza-root (v0.24.0) */
#gyl-fizza-root {
  --fz-graphite: #1c1a17; --fz-graphite-2: #0f0e0c; --fz-graphite-3: #141312;
  --fz-surface: #f5f1e8; --fz-amber: var(--fz-accent, #d97706);
  --fz-amber-glow: var(--fz-accent-glow, #f0a44a); --fz-amber-2: #b96606;
  font-family: "Manrope", system-ui, -apple-system, sans-serif; color: var(--fz-surface);
  background: radial-gradient(ellipse 90% 40% at 50% -10%, rgba(217,119,6,.20), transparent 60%),
              radial-gradient(ellipse 50% 50% at 80% 110%, rgba(240,164,74,.18), transparent 55%), var(--fz-graphite-3);
  padding: 24px 16px 100px; position: relative; overflow: hidden; border-radius: 22px; min-height: 600px;
}
/* Buttons don't inherit font-family from the root by default — force the brand font
   so injected controls (Voice Booking, EN/FR toggle, mic) never fall back to Arial. */
#gyl-fizza-root button { font-family: inherit; }
#gyl-fizza-root *, #gyl-fizza-root *::before, #gyl-fizza-root *::after { box-sizing: border-box; }
#gyl-fizza-root button, #gyl-fizza-root input, #gyl-fizza-root textarea { font-family: inherit; }
#gyl-fizza-root .fz-status-strip {
  display: inline-flex; align-items: center; gap: 14px; padding: 10px 18px; margin: 0 auto 24px; max-width: max-content;
  background: rgba(0,0,0,.4); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.06); border-radius: 999px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; color: #b8b2a6; letter-spacing: 1.4px;
  position: relative; left: 50%; transform: translateX(-50%);
}
#gyl-fizza-root .fz-status-strip .live { width: 6px; height: 6px; border-radius: 50%; background: #7ea04f; box-shadow: 0 0 8px #7ea04f; animation: fz-pulse 1.4s infinite; }
#gyl-fizza-root .fz-status-strip i { color: #4a453f; font-style: normal; }
#gyl-fizza-root .fz-status-strip b { color: var(--fz-amber-glow); font-weight: 600; }
@keyframes fz-pulse { 0%,100%{opacity:1} 50%{opacity:.4} }
@keyframes fz-msg-in { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }

/* CARDS */
#gyl-fizza-root .fz-chooser-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 920px; margin: 0 auto; }
#gyl-fizza-root .fz-card {
  position: relative; overflow: hidden;
  /* Pin our own layout — a theme/reservation-pro mobile rule sets button{display:flex}
     (row), which crammed the card children into a broken row on phones. Force a
     vertical stack, scoped to the widget so nothing external can hijack it. */
  display: flex !important; flex-direction: column !important; align-items: stretch !important;
  background: radial-gradient(ellipse at 50% 0%, rgba(240,164,74,.06), transparent 60%), linear-gradient(180deg, #1f1d1b 0%, #131211 100%);
  border: 1px solid rgba(255,255,255,.08); border-radius: 18px; padding: 24px 20px 20px;
  color: var(--fz-surface); cursor: pointer; transition: transform .3s, border-color .25s, box-shadow .3s; text-align: center;
}
#gyl-fizza-root .fz-card:hover { transform: translateY(-4px); border-color: rgba(240,164,74,.35); box-shadow: 0 20px 50px -22px rgba(217,119,6,.30); }
#gyl-fizza-root .fz-card.featured { background: radial-gradient(ellipse at 50% 0%, rgba(240,164,74,.18), transparent 60%), linear-gradient(180deg, #2a2420 0%, #14110f 100%); border-color: rgba(240,164,74,.40); }
#gyl-fizza-root .fz-card .fz-badge { position: absolute; top: 10px; right: 10px; font-family: "JetBrains Mono", monospace; font-size: 8px; letter-spacing: 1.3px; padding: 3px 8px; background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border-radius: 999px; font-weight: 700; }
#gyl-fizza-root .fz-icon-wrap { width: 56px; height: 56px; margin: 0 auto 12px; position: relative; display: flex; align-items: center; justify-content: center; }
#gyl-fizza-root .fz-icon-glow { position: absolute; inset: -15%; background: radial-gradient(circle, rgba(240,164,74,.45), transparent 60%); border-radius: 50%; filter: blur(6px); animation: fz-glow 3s ease-in-out infinite; }
@keyframes fz-glow { 0%,100%{transform:scale(1);opacity:.8} 50%{transform:scale(1.1);opacity:1} }
#gyl-fizza-root .fz-icon-svg { position: relative; width: 36px; height: 36px; color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-card h3 { font-family: "Fraunces", "Georgia", serif; font-weight: 500; font-size: 19px; margin: 0 0 6px; letter-spacing: -.02em; color: var(--fz-surface); }
#gyl-fizza-root .fz-card h3 em { font-style: italic; color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-card .fz-blurb { color: #c9c3b8; font-size: 12px; line-height: 1.5; margin: 0 0 14px; }
#gyl-fizza-root .fz-card .fz-meta { display: flex; justify-content: center; gap: 10px; font-family: "JetBrains Mono", monospace; font-size: 9px; color: #8a847b; letter-spacing: 1px; margin: 0 0 14px; }
#gyl-fizza-root .fz-card .fz-meta i { color: #4a453f; font-style: normal; }
#gyl-fizza-root .fz-card .fz-pick { display: inline-block; width: 100%; padding: 10px 14px; border-radius: 9px; background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); font-size: 11px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; box-shadow: 0 6px 20px -8px rgba(217,119,6,.5); }
#gyl-fizza-root .fz-mic-rings { position: absolute; inset: -20%; }
#gyl-fizza-root .fz-mic-ring { position: absolute; inset: 30%; border: 2px solid var(--fz-amber-glow); border-radius: 50%; opacity: 0; animation: fz-mic-ring 2.4s ease-out infinite; }
#gyl-fizza-root .fz-mic-ring:nth-child(2) { animation-delay: .8s; }
#gyl-fizza-root .fz-mic-ring:nth-child(3) { animation-delay: 1.6s; }
@keyframes fz-mic-ring { 0%{transform:scale(.6);opacity:.8} 100%{transform:scale(1.6);opacity:0} }

#gyl-fizza-root .fz-chooser-tabs { display: none; justify-content: center; gap: 8px; margin: 0 0 20px; }
#gyl-fizza-root .fz-chooser-tabs.is-active { display: flex; }
#gyl-fizza-root .fz-tab { padding: 7px 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 999px; color: #b8b2a6; cursor: pointer; font-size: 12px; font-weight: 600; }
#gyl-fizza-root .fz-tab.active { background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border-color: transparent; }

/* PANELS */
#gyl-fizza-root .fz-panel { display: none; max-width: 920px; margin: 0 auto; padding: 0; background: linear-gradient(180deg, #1c1a17 0%, #0f0e0c 100%); border: 1px solid rgba(240,164,74,.18); border-radius: 20px; overflow: hidden; animation: fz-msg-in .4s; height: 640px; max-height: calc(100vh - 200px); }
#gyl-fizza-root .fz-panel.is-active { display: flex; flex-direction: column; }
#gyl-fizza-root #fz-panel-edit.is-active { height: auto; min-height: 380px; }
#gyl-fizza-root .fz-panel-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px; background: rgba(0,0,0,.35); border-bottom: 1px solid rgba(240,164,74,.10); flex-shrink: 0; }
#gyl-fizza-root .fz-agent { display: flex; align-items: center; gap: 12px; }
/* Modern messenger header: real photo (or elegant portrait), live presence, human status */
#gyl-fizza-root .fz-avatar { position: relative; width: 46px; height: 46px; flex: 0 0 auto; }
#gyl-fizza-root .fz-av-face { width: 46px; height: 46px; border-radius: 50%; overflow: hidden; display: block;
  background: radial-gradient(120% 120% at 30% 22%, #fbe9c2 0%, #f0c878 42%, #d9a24a 100%);
  box-shadow: 0 0 0 2px rgba(255,255,255,.12), 0 6px 16px -6px rgba(0,0,0,.7); }
#gyl-fizza-root .fz-av-img { width: 100%; height: 100%; object-fit: cover; display: block; }
#gyl-fizza-root .fz-av-ill { width: 100%; height: 100%; display: block; color: #3a2f24; }
#gyl-fizza-root .fz-av-ill circle { fill: #3a2f24; }
#gyl-fizza-root .fz-av-ill path { stroke: #3a2f24; }
#gyl-fizza-root .fz-presence { position: absolute; right: 1px; bottom: 1px; width: 12px; height: 12px; border-radius: 50%;
  background: #157a3a; border: 2.5px solid #16130f; box-shadow: 0 0 0 1px rgba(52,199,89,.4); }
#gyl-fizza-root .fz-presence::after { content:""; position: absolute; inset: -3px; border-radius: 50%; border: 1.5px solid rgba(52,199,89,.55); animation: fz-ping 2s ease-out infinite; }
#gyl-fizza-root .fz-who h4 { font-family: "Fraunces", serif; font-size: 17px; font-weight: 600; margin: 0; color: var(--fz-surface); letter-spacing:-.01em; display:flex; align-items:baseline; gap:7px; flex-wrap:wrap; }
#gyl-fizza-root .fz-who .fz-role { font-family: "Manrope", system-ui, sans-serif; font-weight: 500; font-size: 12.5px; color: #a59f93; letter-spacing: 0; }
#gyl-fizza-root .fz-status { display: flex; align-items: center; gap: 6px; font-family: "Manrope", system-ui, sans-serif; font-size: 12px; color: #8f897e; margin-top: 3px; letter-spacing: 0; text-transform: none; }
#gyl-fizza-root .fz-status .fz-online { width: 7px; height: 7px; border-radius: 50%; background: #157a3a; box-shadow: 0 0 7px rgba(52,199,89,.7); flex:0 0 auto; }
#gyl-fizza-root .fz-status em { font-style: normal; color: #6f6a61; }
#gyl-fizza-root .fz-close, #gyl-fizza-root .fz-form-actions button:not(.fz-form-swap) { width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); color: #8a847b; cursor: pointer; font-size: 18px; }
#gyl-fizza-root .fz-close:hover { background: rgba(217,119,6,.12); color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-form-actions { display: flex; align-items: center; gap: 8px; }
#gyl-fizza-root .fz-form-swap { padding: 6px 11px; background: rgba(240,164,74,.10); border: 1px solid rgba(240,164,74,.30); border-radius: 999px; color: var(--fz-amber-glow); cursor: pointer; font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 1.3px; font-weight: 700; }

/* Chat */
#gyl-fizza-root .fz-edit-banner { margin: 12px 18px 0; padding: 9px 12px; background: rgba(255,255,255,.022); border: 1px solid rgba(255,255,255,.07); border-radius: 12px; display: flex; gap: 11px; align-items: center; flex-shrink: 0; }
#gyl-fizza-root .fz-edit-ico { width: 30px; height: 30px; border-radius: 9px; background: rgba(240,164,74,.12); color: var(--fz-amber-glow); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
#gyl-fizza-root .fz-edit-ico svg { width: 16px; height: 16px; }
#gyl-fizza-root .fz-edit-text { flex: 1; min-width: 0; font-family: "Manrope", system-ui, sans-serif; font-size: 13px; color: #d7d1c5; font-weight: 600; }
#gyl-fizza-root .fz-edit-text span { display: block; font-weight: 400; font-size: 12px; color: #8f897e; margin-top: 1px; }
#gyl-fizza-root .fz-edit-cta { flex-shrink: 0; font-family: "Manrope", system-ui, sans-serif; font-size: 12.5px; letter-spacing: .2px; font-weight: 700; color: var(--fz-amber-glow); padding: 11px 15px; min-height: 44px; box-sizing: border-box; border-radius: 999px; background: transparent; border: 1px solid rgba(240,164,74,.34); cursor: pointer; transition: background .2s, color .2s; }
#gyl-fizza-root .fz-edit-cta:hover { background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border-color: transparent; }
#gyl-fizza-root .fz-chat-thread { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 22px; display: flex; flex-direction: column; gap: 12px; scroll-behavior: smooth; }
#gyl-fizza-root .fz-msg { max-width: 78%; padding: 11px 14px; border-radius: 14px; font-size: 14px; line-height: 1.5; animation: fz-msg-in .3s; }
#gyl-fizza-root .fz-msg.agent { align-self: flex-start; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); border-bottom-left-radius: 4px; color: #d7d1c4; }
#gyl-fizza-root .fz-msg.user { align-self: flex-end; background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border-bottom-right-radius: 4px; }
#gyl-fizza-root .fz-msg.agent em { font-style: italic; color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-msg-meta { font-family: "Manrope", system-ui, sans-serif; font-size: 9px; color: rgba(255,255,255,.32); letter-spacing: 1.2px; margin-top: 4px; }
#gyl-fizza-root .fz-msg.user .fz-msg-meta { color: rgba(28,26,23,.45); }
#gyl-fizza-root .fz-airport-intel { margin-top: 8px; padding: 9px 11px; background: linear-gradient(135deg, rgba(240,164,74,.10), rgba(217,119,6,.04)), rgba(0,0,0,.30); border: 1px solid rgba(240,164,74,.28); border-radius: 10px; display: flex; flex-direction: column; gap: 5px; }
#gyl-fizza-root .fz-ai-line { display: flex; align-items: center; gap: 9px; font-size: 11.5px; color: #c9c3b8; line-height: 1.4; }
#gyl-fizza-root .fz-ai-line b { color: #8a847b; font-weight: 600; font-size: 9.5px; text-transform: uppercase; letter-spacing: 1.2px; min-width: 50px; }
#gyl-fizza-root .fz-ai-dot { width: 5px; height: 5px; border-radius: 50%; background: rgba(240,164,74,.35); flex-shrink: 0; }
#gyl-fizza-root .fz-ai-dot-on { background: var(--fz-amber-glow); box-shadow: 0 0 8px rgba(240,164,74,.65); }
#gyl-fizza-root .fz-ai-final { padding-top: 4px; border-top: 1px dashed rgba(240,164,74,.22); margin-top: 2px; }
#gyl-fizza-root .fz-ai-final b { color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-ai-time { font-family: "Fraunces", serif; font-style: italic; color: var(--fz-surface); font-size: 14px; font-weight: 500; }
#gyl-fizza-root .fz-quick-chips { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 22px 12px; flex-shrink: 0; }
#gyl-fizza-root .fz-qc { padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); color: #c9c3b8; font-size: 12px; cursor: pointer; }
#gyl-fizza-root .fz-qc:hover { background: rgba(240,164,74,.14); color: var(--fz-amber-glow); border-color: rgba(240,164,74,.3); }
#gyl-fizza-root .fz-chat-input-wrap { padding: 12px 22px; display: flex; gap: 8px; align-items: center; border-top: 1px solid rgba(255,255,255,.05); flex-shrink: 0; }
#gyl-fizza-root .fz-chat-input { flex: 1; padding: 12px 16px; border-radius: 999px; background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.10); color: var(--fz-surface); font-size: 14px; outline: none; resize: none; max-height: 100px; line-height: 1.4; }
#gyl-fizza-root .fz-chat-input:focus { border-color: var(--fz-amber); }
#gyl-fizza-root .fz-icon-btn { width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); color: var(--fz-surface); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
#gyl-fizza-root .fz-icon-btn:hover { background: rgba(240,164,74,.14); color: var(--fz-amber-glow); border-color: rgba(240,164,74,.3); }
#gyl-fizza-root .fz-icon-btn.send { background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border-color: transparent; }
#gyl-fizza-root .fz-icon-btn svg { width: 18px; height: 18px; }

/* Voice */
#gyl-fizza-root .fz-voice-body { flex: 1; min-height: 0; padding: 20px 22px 14px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; position: relative; }
#gyl-fizza-root .fz-voice-state { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 2.2px; font-weight: 700; padding: 6px 14px; border-radius: 999px; display: inline-flex; align-items: center; gap: 8px; background: rgba(240,164,74,.10); border: 1px solid rgba(240,164,74,.30); color: var(--fz-amber-glow); transition: all .35s; flex-shrink: 0; }
#gyl-fizza-root .fz-vs-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--fz-amber-glow); box-shadow: 0 0 8px var(--fz-amber); animation: fz-pulse 1.1s infinite; }
#gyl-fizza-root .fz-voice-state.is-thinking { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.14); color: #c9c3b8; }
#gyl-fizza-root .fz-voice-state.is-thinking .fz-vs-dot { background: #c9c3b8; box-shadow: none; }
#gyl-fizza-root .fz-voice-state.is-speaking { background: linear-gradient(180deg, rgba(240,164,74,.22), rgba(217,119,6,.10)); border-color: rgba(240,164,74,.5); }
#gyl-fizza-root .fz-mic-shell { position: relative; width: 150px; height: 150px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
#gyl-fizza-root .fz-mic-bg { position: absolute; inset: -10%; border-radius: 50%; background: radial-gradient(circle at 50% 50%, rgba(240,164,74,.25), transparent 65%); filter: blur(8px); animation: fz-glow 2.6s ease-in-out infinite; }
#gyl-fizza-root .fz-mic-button { position: relative; width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle at 32% 28%, #fde6b0, var(--fz-amber) 55%, var(--fz-amber-2)); box-shadow: 0 18px 44px -10px rgba(217,119,6,.65), inset 0 1px 0 rgba(255,255,255,.45); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; border: 0; }
#gyl-fizza-root .fz-mic-button:active { transform: scale(.96); }
#gyl-fizza-root .fz-mic-button svg { width: 38px; height: 38px; color: var(--fz-graphite); }
#gyl-fizza-root .fz-voice-eq { display: flex; align-items: flex-end; gap: 5px; height: 24px; }
#gyl-fizza-root .fz-voice-eq span { width: 4px; border-radius: 4px; background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); box-shadow: 0 0 6px rgba(240,164,74,.55); animation: fz-eq 1.1s ease-in-out infinite; }
#gyl-fizza-root .fz-voice-eq span:nth-child(1){animation-delay:0s;animation-duration:.9s}
#gyl-fizza-root .fz-voice-eq span:nth-child(2){animation-delay:.12s;animation-duration:1.2s}
#gyl-fizza-root .fz-voice-eq span:nth-child(3){animation-delay:.24s;animation-duration:.8s}
#gyl-fizza-root .fz-voice-eq span:nth-child(4){animation-delay:.08s;animation-duration:1.05s}
#gyl-fizza-root .fz-voice-eq span:nth-child(5){animation-delay:.30s;animation-duration:.95s}
#gyl-fizza-root .fz-voice-eq span:nth-child(6){animation-delay:.16s;animation-duration:1.15s}
#gyl-fizza-root .fz-voice-eq span:nth-child(7){animation-delay:.04s;animation-duration:.85s}
@keyframes fz-eq { 0%,100%{height:5px;opacity:.5} 50%{height:22px;opacity:1} }
/* ── Touch-and-talk states on the big mic circle ─────────────────────────────
   idle: calm (rings paused, "Hold to talk")  ·  is-holding/is-listening: you're
   recording (rings pulse out + EQ live)  ·  is-thinking: dim  ·  is-speaking:
   Sarah is talking (distinct breathing halo + EQ as her voice viz). */
#gyl-fizza-root .fz-mic-ring{ animation-play-state:paused; }
#gyl-fizza-root .fz-mic-shell.is-holding .fz-mic-ring,
#gyl-fizza-root .fz-mic-shell.is-listening .fz-mic-ring,
#gyl-fizza-root .fz-mic-shell.is-speaking .fz-mic-ring{ animation-play-state:running; }
#gyl-fizza-root .fz-mic-shell.is-holding .fz-mic-button{ transform:scale(1.05);
  box-shadow:0 22px 60px -8px rgba(217,119,6,.8), 0 0 0 7px rgba(240,164,74,.20); }
#gyl-fizza-root .fz-mic-shell.is-thinking .fz-mic-button{ filter:saturate(.55) brightness(.9); }
#gyl-fizza-root .fz-mic-shell.is-thinking .fz-mic-bg{ animation:none; opacity:.35; }
#gyl-fizza-root .fz-mic-shell.is-speaking .fz-mic-button{ animation:fz-speak-pulse 1.15s ease-in-out infinite; }
@keyframes fz-speak-pulse{
  0%,100%{ box-shadow:0 18px 44px -10px rgba(217,119,6,.65), 0 0 0 0 rgba(240,164,74,.55); }
  50%    { box-shadow:0 18px 44px -10px rgba(217,119,6,.65), 0 0 0 16px rgba(240,164,74,0); } }
/* EQ bars: hidden at rest, shown while you talk or Sarah speaks (live audio viz). */
#gyl-fizza-root .fz-voice-eq{ opacity:0; transition:opacity .3s; }
#gyl-fizza-root .fz-mic-shell.is-holding ~ .fz-voice-eq,
#gyl-fizza-root .fz-mic-shell.is-listening ~ .fz-voice-eq,
#gyl-fizza-root .fz-mic-shell.is-speaking ~ .fz-voice-eq{ opacity:1; }
/* "Hold to talk" instruction under the circle. */
#gyl-fizza-root .fz-mic-hint{ margin-top:14px; font:600 13.5px/1.3 Manrope,system-ui,sans-serif;
  letter-spacing:.2px; color:#c9c3b8; text-align:center; transition:color .3s; }
#gyl-fizza-root .fz-mic-shell.is-holding ~ .fz-mic-hint,
#gyl-fizza-root .fz-mic-shell.is-listening ~ .fz-mic-hint,
#gyl-fizza-root .fz-mic-shell.is-speaking ~ .fz-mic-hint{ color:var(--fz-amber-glow); }
#gyl-fizza-root .fz-mic-button{ touch-action:none; -webkit-user-select:none; user-select:none; transition:width .4s ease, height .4s ease; }
/* ── Voice two-state layout ──────────────────────────────────────────────────
   WELCOME (board loads): big mic centered + greeting.  CONVERSATION (after the
   first hold-and-talk): transcript fills the top and scrolls, the mic docks at
   the BOTTOM as a thumb-friendly hold-to-talk bar. */
#gyl-fizza-root #fz-voice-state{ display:none; }                /* the hint label is the single state line */
#gyl-fizza-root .fz-voice-greet{ max-width:430px; margin:6px auto 2px; font:600 16px/1.45 Manrope,system-ui,sans-serif; color:#d7d1c4; }
#gyl-fizza-root .fz-mic-shell{ transition:width .4s ease, height .4s ease; }
/* welcome: center the mic group, hide the (empty) transcript */
#gyl-fizza-root .fz-voice-body{ justify-content:center; }
#gyl-fizza-root .fz-voice-body:not(.has-convo) #fz-voice-convo{ display:none; }
/* conversation: transcript on top, mic docked bottom */
#gyl-fizza-root .fz-voice-body.has-convo{ justify-content:flex-start; gap:8px; }
#gyl-fizza-root .fz-voice-body.has-convo .fz-voice-greet{ display:none; }
#gyl-fizza-root .fz-voice-body.has-convo #fz-voice-convo{ order:1; flex:1 1 auto; min-height:0; width:100%; max-width:560px;
  overflow-y:auto; -webkit-overflow-scrolling:touch; padding:4px 2px 8px; }
#gyl-fizza-root .fz-voice-body.has-convo .fz-mic-shell{ order:3; width:96px; height:96px; flex-shrink:0; }
#gyl-fizza-root .fz-voice-body.has-convo .fz-mic-shell .fz-mic-button{ width:66px; height:66px; }
#gyl-fizza-root .fz-voice-body.has-convo .fz-mic-shell .fz-mic-button svg{ width:27px; height:27px; }
#gyl-fizza-root .fz-voice-body.has-convo .fz-voice-eq{ order:2; height:18px; }
#gyl-fizza-root .fz-voice-body.has-convo .fz-mic-hint{ order:4; margin-top:6px; font-size:12px; }
#gyl-fizza-root .fz-voice-body.has-convo .fz-voice-controls{ order:5; margin-top:8px; }
#gyl-fizza-root .fz-voice-convo { width: 100%; max-width: 540px; display: flex; flex-direction: column; gap: 7px; overflow: hidden; }
#gyl-fizza-root .fz-voice-bubble { text-align: left; padding: 10px 14px; border-radius: 12px; font-size: 13.5px; line-height: 1.45; animation: fz-msg-in .4s; }
#gyl-fizza-root .fz-voice-bubble .fz-vb-tag { display: inline-block; font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: 1.4px; font-weight: 700; margin-right: 8px; text-transform: uppercase; }
#gyl-fizza-root .fz-voice-bubble.you { align-self: flex-end; max-width: 88%; background: linear-gradient(180deg, rgba(240,164,74,.16), rgba(217,119,6,.06)); border: 1px solid rgba(240,164,74,.30); color: var(--fz-surface); border-bottom-right-radius: 4px; }
#gyl-fizza-root .fz-voice-bubble.you .fz-vb-tag { color: #ffd58f; }
#gyl-fizza-root .fz-voice-bubble.you .fz-vb-text { font-family: "Fraunces", serif; font-style: italic; font-size: 15px; }
#gyl-fizza-root .fz-voice-bubble.fizza { align-self: flex-start; max-width: 88%; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); color: #d7d1c4; border-bottom-left-radius: 4px; }
#gyl-fizza-root .fz-voice-bubble.fizza .fz-vb-tag { color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-voice-bubble.fizza em { color: var(--fz-amber-glow); font-style: italic; }
#gyl-fizza-root .fz-voice-controls { margin-top: auto; padding-top: 4px; display: flex; gap: 8px; justify-content: center; flex-shrink: 0; }
#gyl-fizza-root .fz-vc-btn { padding: 9px 16px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); color: #c9c3b8; font-size: 12px; font-weight: 600; cursor: pointer; }
#gyl-fizza-root .fz-vc-btn:hover { background: rgba(240,164,74,.12); color: var(--fz-amber-glow); border-color: rgba(240,164,74,.32); }
#gyl-fizza-root .fz-vc-btn.is-primary { background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border-color: transparent; }

/* Form */
#gyl-fizza-root .fz-stage-rail { display: flex; align-items: center; gap: 6px; padding: 11px 22px; flex-shrink: 0; border-bottom: 1px solid rgba(255,255,255,.04); background: rgba(0,0,0,.15); }
#gyl-fizza-root .fz-stage { display: inline-flex; align-items: center; gap: 7px; color: #6b6660; font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; flex-shrink: 0; }
#gyl-fizza-root .fz-stage.active { color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-stage.done { color: var(--fz-amber); }
#gyl-fizza-root .fz-stage-num { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.10); font-family: "JetBrains Mono", monospace; font-size: 9px; }
#gyl-fizza-root .fz-stage.active .fz-stage-num { background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border-color: transparent; }
#gyl-fizza-root .fz-stage-bar { flex: 1; height: 2px; min-width: 14px; background: rgba(255,255,255,.06); border-radius: 1px; margin: 0 4px; }
#gyl-fizza-root .fz-form-body { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 28px 16px; display: flex; flex-direction: column; max-width: 720px; margin: 0 auto; width: 100%; }
#gyl-fizza-root .fz-form-progress { height: 3px; background: rgba(255,255,255,.06); border-radius: 999px; overflow: hidden; margin-bottom: 12px; }
#gyl-fizza-root .fz-form-progress-fill { height: 100%; background: linear-gradient(90deg, var(--fz-amber-glow), var(--fz-amber)); border-radius: 999px; box-shadow: 0 0 10px rgba(217,119,6,.5); transition: width .4s cubic-bezier(.2,.8,.2,1); }
#gyl-fizza-root .fz-form-step-meta { display: flex; justify-content: space-between; align-items: center; font-family: "JetBrains Mono", monospace; font-size: 10px; color: var(--fz-amber-glow); letter-spacing: 1.4px; margin-bottom: 14px; }
#gyl-fizza-root .fz-required { padding: 2px 7px; font-size: 9px; background: rgba(240,164,74,.16); color: var(--fz-amber-glow); border-radius: 999px; letter-spacing: 1.2px; margin-left: 8px; }
#gyl-fizza-root .fz-form-hint { color: #6b6660; }
#gyl-fizza-root .fz-form-hint kbd { display: inline-block; padding: 1px 5px; font-size: 9px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.10); border-radius: 3px; color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-form-question { font-family: "Fraunces", serif; font-weight: 500; font-size: clamp(22px, 2.4vw, 30px); color: var(--fz-surface); line-height: 1.18; letter-spacing: -.02em; margin: 0 0 6px; }
#gyl-fizza-root .fz-form-helper { color: #b8b2a6; font-size: 13px; line-height: 1.5; margin: 0 0 14px; max-width: 540px; }
#gyl-fizza-root .fz-form-input-wrap { position: relative; }
#gyl-fizza-root .fz-form-input { width: 100%; padding: 14px 50px 14px 18px; background: rgba(0,0,0,.35); border: 1px solid rgba(240,164,74,.18); border-radius: 14px; color: var(--fz-surface); font-family: "Fraunces", serif; font-size: 19px; outline: none; transition: border-color .2s, background .2s; }
#gyl-fizza-root .fz-form-input:focus { border-color: var(--fz-amber); background: rgba(0,0,0,.5); }
#gyl-fizza-root .fz-form-input::placeholder { color: #6b6660; font-style: italic; }
#gyl-fizza-root .fz-form-check { position: absolute; right: 14px; top: 50%; transform: translateY(-50%) scale(.7); width: 26px; height: 26px; border-radius: 50%; background: rgba(240,164,74,.16); color: var(--fz-amber-glow); display: inline-flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s, transform .25s; font-size: 14px; pointer-events: none; }
#gyl-fizza-root .fz-form-check.is-valid { opacity: 1; transform: translateY(-50%) scale(1); }
#gyl-fizza-root .fz-form-suggestions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
#gyl-fizza-root .fz-form-sug { padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); color: #c9c3b8; font-size: 11.5px; cursor: pointer; }
#gyl-fizza-root .fz-form-sug:hover { background: rgba(240,164,74,.12); color: var(--fz-amber-glow); border-color: rgba(240,164,74,.3); }
#gyl-fizza-root .fz-form-estimate { margin: 12px 0 0; padding: 10px 14px; border-radius: 12px; background: linear-gradient(135deg, rgba(240,164,74,.10), rgba(217,119,6,.04)), rgba(0,0,0,.25); border: 1px dashed rgba(240,164,74,.28); display: flex; align-items: center; gap: 12px; color: #d7d1c4; font-size: 12.5px; }
#gyl-fizza-root .fz-form-estimate[hidden] { display: none !important; }   /* the empty ✈ box must actually hide when there's no estimate */
#gyl-fizza-root .fz-fe-ico { width: 28px; height: 28px; border-radius: 8px; background: rgba(240,164,74,.16); color: var(--fz-amber-glow); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 15px; }
#gyl-fizza-root .fz-fe-text { flex: 1; line-height: 1.45; display: flex; flex-direction: column; gap: 2px; }
#gyl-fizza-root .fz-fe-text b { color: var(--fz-surface); font-weight: 600; font-size: 13px; }
#gyl-fizza-root .fz-fe-text span { font-size: 11.5px; color: #8a847b; }
#gyl-fizza-root .fz-fe-price { flex-shrink: 0; font-family: "Fraunces", serif; font-size: 18px; font-weight: 500; color: var(--fz-amber-glow); letter-spacing: -.01em; }
#gyl-fizza-root .fz-form-nav { margin-top: auto; padding-top: 14px; display: flex; justify-content: space-between; align-items: center; }
#gyl-fizza-root .fz-form-prev { color: #8a847b; font-size: 12.5px; text-decoration: none; }
#gyl-fizza-root .fz-form-prev:hover { color: var(--fz-amber-glow); }
#gyl-fizza-root .fz-form-next { padding: 13px 22px; border-radius: 12px; background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border: 0; font-weight: 800; font-size: 12px; letter-spacing: 1.3px; text-transform: uppercase; cursor: pointer; box-shadow: 0 12px 30px -10px rgba(217,119,6,.55); }
#gyl-fizza-root .fz-form-next:hover { transform: translateY(-1px); }
#gyl-fizza-root .fz-form-trust { text-align: center; margin: 10px 0 4px; font-size: 10px; color: #6b6660; letter-spacing: .2px; }

/* Edit panel */
#gyl-fizza-root .fz-edit-body { padding: 32px 24px; display: flex; flex-direction: column; gap: 14px; align-items: center; text-align: center; }
#gyl-fizza-root .fz-edit-code-input { width: 280px; padding: 16px 20px; background: rgba(0,0,0,.35); border: 1px solid rgba(240,164,74,.30); border-radius: 12px; color: var(--fz-amber-glow); font-family: "JetBrains Mono", monospace; font-size: 22px; text-align: center; letter-spacing: 4px; outline: none; }
#gyl-fizza-root .fz-edit-code-input:focus { border-color: var(--fz-amber); }
#gyl-fizza-root .fz-edit-lookup { padding: 14px 30px; border-radius: 12px; background: linear-gradient(180deg, var(--fz-amber-glow), var(--fz-amber)); color: var(--fz-graphite); border: 0; font-weight: 800; font-size: 12px; letter-spacing: 1.3px; text-transform: uppercase; cursor: pointer; }
#gyl-fizza-root .fz-edit-help { color: #6b6660; font-size: 11px; line-height: 1.6; }

#gyl-fizza-root .fz-bottom-bar { display: none !important; /* dev/QA state-switcher — never shown to customers */ position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); gap: 2px; padding: 6px; background: rgba(0,0,0,.55); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.06); border-radius: 999px; }
#gyl-fizza-root .fz-bottom-bar button { padding: 8px 14px; background: transparent; border: 0; border-radius: 999px; color: #8a847b; font-family: "JetBrains Mono", monospace; font-size: 9.5px; letter-spacing: 1.5px; font-weight: 700; cursor: pointer; text-transform: uppercase; }
#gyl-fizza-root .fz-bottom-bar button:hover, #gyl-fizza-root .fz-bottom-bar button.active { background: rgba(240,164,74,.14); color: var(--fz-amber-glow); }

@media (max-width: 980px) {
  #gyl-fizza-root .fz-chooser-grid { grid-template-columns: 1fr; gap: 12px; }
  #gyl-fizza-root .fz-panel { height: 580px; }
}
@media (max-width: 580px) {
  #gyl-fizza-root { padding: 16px 8px 90px; }
  #gyl-fizza-root .fz-panel { height: 520px; border-radius: 16px; }
  #gyl-fizza-root .fz-panel-head { padding: 12px 16px; }
  #gyl-fizza-root .fz-edit-banner { margin: 10px 12px 0; padding: 7px 10px; gap: 8px; }
  #gyl-fizza-root .fz-form-body { padding: 16px 18px 12px; }
  #gyl-fizza-root .fz-voice-body { padding: 14px 18px 10px; }
  #gyl-fizza-root .fz-mic-shell { width: 120px; height: 120px; }
  #gyl-fizza-root .fz-mic-button { width: 82px; height: 82px; }
  #gyl-fizza-root .fz-bottom-bar button { padding: 7px 9px; font-size: 8.5px; }
}

/* === v1.0.1 visual enhance — status chips · Google-review badge · richer icons === */
#gyl-fizza-root .fz-status-strip{ display:flex; flex-direction:column; align-items:center; gap:13px; left:auto; transform:none;
  background:transparent; border:none; backdrop-filter:none; padding:0; max-width:none; }
#gyl-fizza-root .fz-status-strip i{ display:none; }
/* unified "live dispatch" status bar — one mockup-shaped pill, internal segments */
#gyl-fizza-root .fz-statbar{ display:inline-flex; align-items:stretch; flex-wrap:wrap; justify-content:center; border-radius:16px; overflow:hidden;
  background:linear-gradient(180deg, rgba(32,29,25,.95), rgba(16,14,12,.95));
  border:1px solid rgba(240,164,74,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 16px 40px -22px rgba(0,0,0,.95); }
#gyl-fizza-root .fz-statbar .fz-chip{ display:inline-flex; align-items:center; gap:8px; padding:12px 20px; border:0; border-radius:0;
  background:transparent; box-shadow:none; border-left:1px solid rgba(240,164,74,.16);
  font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:1.3px; text-transform:uppercase; color:#d7d1c5; white-space:nowrap; }
#gyl-fizza-root .fz-statbar .fz-chip:first-child{ border-left:0; }
#gyl-fizza-root .fz-chip svg{ width:15px; height:15px; color:var(--fz-amber-glow); flex:0 0 auto; }
#gyl-fizza-root .fz-chip b{ color:#fff; font-weight:700; }
#gyl-fizza-root .fz-chip-live{ color:#c2e3a3; }
#gyl-fizza-root .fz-chip-live .live{ width:7px; height:7px; border-radius:50%; background:#86e052; box-shadow:0 0 10px #86e052; animation:fz-pulse 1.4s infinite; }
/* Google-reviews lookalike chip (white card) */
#gyl-fizza-root .fz-greview{ display:inline-flex; align-items:center; gap:8px; padding:6px 13px; border-radius:12px;
  background:#fff; box-shadow:0 8px 24px -10px rgba(0,0,0,.75), 0 0 0 1px rgba(0,0,0,.05); }
#gyl-fizza-root .fz-greview .fz-g{ width:18px; height:18px; flex:0 0 auto; }
#gyl-fizza-root .fz-greview .fz-grev-score{ font-family:"Manrope",system-ui,sans-serif; font-weight:800; font-size:15px; color:#202124; letter-spacing:0; }
#gyl-fizza-root .fz-greview .fz-stars{ display:inline-flex; gap:1px; }
#gyl-fizza-root .fz-greview .fz-stars svg{ width:15px; height:15px; fill:#fbbc04; }
#gyl-fizza-root .fz-greview .fz-grev-label{ font-family:"Manrope",system-ui,sans-serif; font-size:12px; color:#5f6368; letter-spacing:0; text-transform:none; white-space:nowrap; }
@media(max-width:600px){ #gyl-fizza-root .fz-greview .fz-grev-label{ display:none; } }
/* richer card icons — gold-gradient tile + ring + bigger glyph */
#gyl-fizza-root .fz-icon-wrap{ width:74px; height:74px; margin:0 auto 16px; border-radius:20px;
  background:radial-gradient(circle at 50% 28%, rgba(240,164,74,.24), rgba(255,255,255,.03) 72%);
  border:1px solid rgba(240,164,74,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 12px 30px -16px rgba(217,119,6,.7); }
#gyl-fizza-root .fz-icon-svg{ width:34px; height:34px; stroke-width:1.7; filter:drop-shadow(0 2px 7px rgba(240,164,74,.5)); }
#gyl-fizza-root .fz-icon-glow{ inset:-22%; filter:blur(11px); }
#gyl-fizza-root .fz-card.featured .fz-icon-wrap{ background:radial-gradient(circle at 50% 28%, rgba(240,164,74,.48), rgba(240,164,74,.08) 72%); border-color:rgba(240,164,74,.62); }
#gyl-fizza-root .fz-card.featured .fz-icon-svg{ color:#fff; }

/* === v0.28.15 — advanced live-dispatch status bar (glass · sheen · radar ping) === */
@keyframes fz-sheen { 0%{transform:translateX(-130%)} 55%,100%{transform:translateX(280%)} }
@keyframes fz-ping  { 0%{transform:scale(.5);opacity:.65} 70%{opacity:0} 100%{transform:scale(2.9);opacity:0} }
@keyframes fz-bar-in{ from{opacity:0;transform:translateY(-7px)} to{opacity:1;transform:translateY(0)} }
#gyl-fizza-root .fz-statbar{
  position:relative; isolation:isolate; border-radius:18px; overflow:hidden;
  background:linear-gradient(180deg, rgba(44,38,31,.94), rgba(13,11,9,.97));
  border:1px solid rgba(240,164,74,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), inset 0 -10px 24px -16px rgba(0,0,0,.8), 0 22px 52px -28px rgba(0,0,0,.95);
  -webkit-backdrop-filter:blur(12px) saturate(1.08); backdrop-filter:blur(12px) saturate(1.08);
  animation:fz-bar-in .55s cubic-bezier(.2,.7,.2,1) both;
}
#gyl-fizza-root .fz-statbar::before{ content:""; position:absolute; left:0; right:0; top:0; height:1px; z-index:3;
  background:linear-gradient(90deg, transparent, rgba(240,164,74,.65) 28%, rgba(255,228,176,.95) 50%, rgba(240,164,74,.65) 72%, transparent); }
#gyl-fizza-root .fz-statbar::after{ content:""; position:absolute; top:0; bottom:0; left:0; width:34%; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,232,190,.14) 48%, rgba(255,240,210,.22) 50%, rgba(255,232,190,.14) 52%, transparent);
  transform:translateX(-130%); animation:fz-sheen 7.5s ease-in-out infinite; }
#gyl-fizza-root .fz-statbar .fz-chip{ position:relative; z-index:2; padding:13px 22px; gap:9px;
  border-left:1px solid rgba(240,164,74,.16); transition:background .25s ease; }
#gyl-fizza-root .fz-statbar .fz-chip:first-child{ border-left:0; }
#gyl-fizza-root .fz-statbar .fz-chip:hover{ background:rgba(240,164,74,.06); }
#gyl-fizza-root .fz-statbar .fz-chip svg{ width:16px; height:16px; transition:filter .25s ease; }
#gyl-fizza-root .fz-statbar .fz-chip:hover svg{ filter:drop-shadow(0 0 6px rgba(240,164,74,.65)); }
#gyl-fizza-root .fz-statbar .fz-chip b{ color:#ffe7bd; font-weight:800; }
#gyl-fizza-root .fz-chip-live{ color:#d2ebb6; }
#gyl-fizza-root .fz-chip-live .live{ position:relative; width:8px; height:8px; background:#8ff05a; box-shadow:0 0 12px #8ff05a; animation:fz-pulse 1.6s infinite; }
#gyl-fizza-root .fz-chip-live .live::before{ content:""; position:absolute; inset:-3px; border-radius:50%; border:1px solid rgba(143,240,90,.85); animation:fz-ping 1.9s ease-out infinite; }
@media (prefers-reduced-motion: reduce){ #gyl-fizza-root .fz-statbar, #gyl-fizza-root .fz-statbar::after, #gyl-fizza-root .fz-chip-live .live, #gyl-fizza-root .fz-chip-live .live::before { animation:none !important; } }

/* === v0.28.23 — live "typing" indicator + detailed booking confirmation === */
@keyframes fz-typing-bounce { 0%,80%,100%{ transform:translateY(0); opacity:.4 } 40%{ transform:translateY(-5px); opacity:1 } }
@keyframes fz-confirm-in { from{ opacity:0; transform:translateY(8px) } to{ opacity:1; transform:translateY(0) } }
#gyl-fizza-root .fz-msg.fz-typing{ background:linear-gradient(180deg, rgba(38,33,28,.92), rgba(22,19,16,.92)); width:max-content; }
#gyl-fizza-root .fz-typing-dots{ display:inline-flex; gap:5px; align-items:center; padding:3px 2px; }
#gyl-fizza-root .fz-typing-dots i{ width:8px; height:8px; border-radius:50%; background:var(--fz-accent-glow,#f0a44a); display:inline-block; animation:fz-typing-bounce 1.2s infinite ease-in-out; }
#gyl-fizza-root .fz-typing-dots i:nth-child(2){ animation-delay:.18s; }
#gyl-fizza-root .fz-typing-dots i:nth-child(3){ animation-delay:.36s; }
#gyl-fizza-root .fz-confirm{ animation:fz-confirm-in .4s ease both; }
#gyl-fizza-root .fz-confirm-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px; }
#gyl-fizza-root .fz-confirm-badge{ display:inline-flex; align-items:center; gap:7px; font-family:"JetBrains Mono",monospace; font-size:11px; font-weight:800; letter-spacing:1.6px; color:#0e2a08; background:linear-gradient(180deg,#c4f0a8,#7ec85a); padding:5px 12px; border-radius:999px; box-shadow:0 6px 18px -8px rgba(126,200,90,.6); }
#gyl-fizza-root .fz-cb-dot{ width:7px; height:7px; border-radius:50%; background:#143d09; }
#gyl-fizza-root .fz-confirm-ref{ font-family:"JetBrains Mono",monospace; font-size:13px; font-weight:800; letter-spacing:2px; color:var(--fz-accent-glow,#f0a44a); }
#gyl-fizza-root .fz-confirm-lead{ margin:0 0 12px; color:#e8e2d6; font-size:14px; line-height:1.5; }
#gyl-fizza-root .fz-confirm-grid{ display:grid; grid-template-columns:1fr; border:1px solid rgba(240,164,74,.22); border-radius:14px; overflow:hidden; background:rgba(0,0,0,.28); }
#gyl-fizza-root .fz-confirm-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 15px; border-bottom:1px solid rgba(240,164,74,.10); }
#gyl-fizza-root .fz-confirm-row:last-child{ border-bottom:0; }
#gyl-fizza-root .fz-confirm-row span{ font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:1.2px; text-transform:uppercase; color:#8f887d; flex:0 0 auto; }
#gyl-fizza-root .fz-confirm-row b{ color:#fff; font-weight:600; font-size:13.5px; text-align:right; word-break:break-word; }
#gyl-fizza-root .fz-confirm-foot{ margin:12px 0 2px; color:#c0bab0; font-size:12.5px; line-height:1.55; }
#gyl-fizza-root .fz-confirm-adv{ margin:12px 0 0; padding:11px 13px; border-radius:11px; font-size:12.8px; line-height:1.5; border:1px solid; }
#gyl-fizza-root .fz-adv-warn{ background:rgba(240,164,74,.12); border-color:rgba(240,164,74,.4); color:#f3d9aa; }
#gyl-fizza-root .fz-adv-good{ background:rgba(120,200,140,.1); border-color:rgba(120,200,140,.3); color:#bfe6c9; }
#gyl-fizza-root .fz-adv-info{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); color:#d6d2c8; }
@media (prefers-reduced-motion: reduce){ #gyl-fizza-root .fz-typing-dots i, #gyl-fizza-root .fz-confirm{ animation:none !important; } }

/* === v0.28.24 — Google Places address autocomplete dropdown (exact pin) === */
.fz-place-menu{ position:fixed; z-index:2147483600; max-height:280px; overflow-y:auto;
  background:linear-gradient(180deg,#221e1a,#15120f); border:1px solid rgba(240,164,74,.34);
  border-radius:14px; box-shadow:0 26px 60px -24px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.06);
  padding:6px; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); animation:fz-confirm-in .18s ease both; }
.fz-place-menu .fz-place-item, .fz-place-menu .fz-place-loc{ display:flex; align-items:center; gap:11px; width:100%;
  text-align:left; background:transparent; border:0; border-radius:10px; padding:10px 12px; cursor:pointer;
  color:#e8e2d6; font-family:"Manrope",system-ui,sans-serif; font-size:13.5px; transition:background .15s ease; }
.fz-place-menu .fz-place-item:hover, .fz-place-menu .fz-place-item.is-active{ background:rgba(240,164,74,.12); }
.fz-place-menu .fz-place-loc:hover{ background:rgba(240,164,74,.10); }
.fz-place-menu svg{ width:17px; height:17px; flex:0 0 auto; color:var(--fz-amber-glow,#f0a44a); }
.fz-place-menu .fz-place-loc{ color:var(--fz-amber-glow,#f0a44a); font-weight:600; border-bottom:1px solid rgba(240,164,74,.14); border-radius:10px 10px 0 0; margin-bottom:2px; }
.fz-place-menu .fz-place-txt{ display:flex; flex-direction:column; gap:1px; min-width:0; }
.fz-place-menu .fz-place-txt b{ font-weight:600; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fz-place-menu .fz-place-txt i{ font-style:normal; font-size:11.5px; color:#9a9388; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* === v0.28.27 — inline date/time picker (chat) === */
#gyl-fizza-root .fz-when-pick{ display:flex; gap:8px; width:100%; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
#gyl-fizza-root .fz-when-input{ flex:1 1 180px; min-width:160px; color-scheme:dark; background:rgba(0,0,0,.4); border:1px solid rgba(240,164,74,.32); border-radius:11px; color:#f5f1e8; font-family:"Manrope",system-ui,sans-serif; font-size:13.5px; padding:11px 13px; }
#gyl-fizza-root .fz-when-input:focus{ outline:none; border-color:var(--fz-amber-glow,#f0a44a); box-shadow:0 0 0 3px rgba(240,164,74,.16); }
#gyl-fizza-root .fz-when-set{ flex:0 0 auto; background:linear-gradient(180deg,var(--fz-amber-glow,#f0a44a),var(--fz-amber,#d97706)); color:#2a2014; border:0; border-radius:11px; font-weight:800; font-size:12.5px; letter-spacing:.2px; padding:11px 17px; cursor:pointer; font-family:"Manrope",system-ui,sans-serif; }
#gyl-fizza-root .fz-when-set:hover{ filter:brightness(1.06); }
/* dark-theme the datetime-local picker in the form too */
#gyl-fizza-root .fz-form-input[type="datetime-local"]{ color-scheme:dark; }

/* === v0.28.28 — fleet / vehicle picker (3-column cards) === */
#gyl-fizza-root .fz-fleet-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; width:100%; margin:2px 0 6px; }
#gyl-fizza-root .fz-fleet-card{ display:flex; flex-direction:column; gap:0; text-align:left; padding:0; cursor:pointer; overflow:hidden;
  background:linear-gradient(180deg,#211d19,#141110); border:1px solid rgba(240,164,74,.22); border-radius:14px;
  transition:border-color .2s, transform .2s, box-shadow .2s; }
#gyl-fizza-root .fz-fleet-card:hover{ border-color:rgba(240,164,74,.6); transform:translateY(-3px); box-shadow:0 16px 34px -18px rgba(217,119,6,.5); }
#gyl-fizza-root .fz-fleet-img{ display:block; width:100%; aspect-ratio:16/10; background:#0d0b0a; overflow:hidden; }
#gyl-fizza-root .fz-fleet-img img{ width:100%; height:100%; object-fit:cover; display:block; }
#gyl-fizza-root .fz-fleet-ph{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:rgba(240,164,74,.5); }
#gyl-fizza-root .fz-fleet-ph svg{ width:40px; height:40px; }
#gyl-fizza-root .fz-fleet-name{ font-family:"Fraunces",serif; font-weight:600; font-size:13px; color:var(--fz-surface,#f5f1e8); padding:9px 10px 0; line-height:1.25; }
#gyl-fizza-root .fz-fleet-cap{ font-family:"JetBrains Mono",monospace; font-size:9.5px; letter-spacing:.4px; color:#9a9388; padding:3px 10px 11px; }
@media (max-width:560px){ #gyl-fizza-root .fz-fleet-grid{ grid-template-columns:1fr; } #gyl-fizza-root .fz-fleet-card{ flex-direction:row; align-items:center; } #gyl-fizza-root .fz-fleet-img{ width:104px; flex:0 0 104px; aspect-ratio:16/11; } #gyl-fizza-root .fz-fleet-name{ padding-top:9px; } }
#gyl-fizza-root .fz-fleet-wrap{ width:100%; margin:2px 0 6px; }
#gyl-fizza-root .fz-fleet-card.is-small{ opacity:.62; border-color:rgba(255,255,255,.08); position:relative; }
#gyl-fizza-root .fz-fleet-card.is-small:hover{ transform:none; border-color:rgba(220,80,60,.5); box-shadow:none; }
#gyl-fizza-root .fz-fleet-tag{ display:block; font-family:"JetBrains Mono",monospace; font-size:9px; letter-spacing:.3px; color:#e3917f; padding:0 10px 9px; }
#gyl-fizza-root .fz-fleet-alert{ margin:8px 2px 0; padding:9px 12px; border-radius:10px; background:rgba(220,80,60,.12); border:1px solid rgba(220,80,60,.35); color:#f0b9ae; font-family:"Manrope",system-ui,sans-serif; font-size:12.5px; line-height:1.45; }
#gyl-fizza-root .fz-fleet-change{ margin:9px 2px 0; width:100%; background:transparent; border:1px solid rgba(240,164,74,.3); color:var(--fz-amber-glow,#f0a44a); border-radius:10px; padding:9px; font-family:"Manrope",system-ui,sans-serif; font-size:12.5px; font-weight:700; cursor:pointer; }
#gyl-fizza-root .fz-fleet-change:hover{ background:rgba(240,164,74,.1); }

/* === v0.28.35 — Reservation payment (Cash / Card on file), all 3 forms === */
#gyl-fizza-root .fz-pay{ display:flex; flex-direction:column; gap:14px; width:100%; }
#gyl-fizza-root .fz-pay-methods{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#gyl-fizza-root .fz-pay-opt{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; min-height:64px;
  padding:14px 16px; border:1.5px solid rgba(240,164,74,.28); border-radius:14px; background:rgba(0,0,0,.22);
  color:#f3ead3; cursor:pointer; text-align:left; transition:border-color .15s, background .15s; }
#gyl-fizza-root .fz-pay-opt:hover{ border-color:rgba(240,164,74,.55); }
#gyl-fizza-root .fz-pay-opt.is-on{ border-color:var(--fz-accent-glow,#f0a44a); background:rgba(240,164,74,.12); box-shadow:0 0 0 1px var(--fz-accent-glow,#f0a44a) inset; }
#gyl-fizza-root .fz-pay-opt .fz-pay-ic{ font-size:20px; }
#gyl-fizza-root .fz-pay-opt b{ font-size:14px; font-weight:600; }
#gyl-fizza-root .fz-pay-opt small{ font-size:11px; color:#b8b1a4; line-height:1.35; }
#gyl-fizza-root .fz-card-panel{ display:flex; flex-direction:column; gap:11px; padding:16px; border:1px solid rgba(240,164,74,.2);
  border-radius:14px; background:rgba(0,0,0,.28); }
#gyl-fizza-root .fz-card-l{ display:flex; flex-direction:column; gap:5px; font-size:10.5px; letter-spacing:1px;
  text-transform:uppercase; color:#a59f93; font-family:"JetBrains Mono",monospace; }
#gyl-fizza-root .fz-in{ width:100%; min-height:44px; padding:10px 13px; border:1px solid rgba(255,255,255,.16);
  border-radius:10px; background:rgba(255,255,255,.05); color:#fff; font-size:15px; font-family:inherit; box-sizing:border-box; }
#gyl-fizza-root .fz-in:focus{ outline:none; border-color:var(--fz-accent-glow,#f0a44a); background:rgba(255,255,255,.08); }
#gyl-fizza-root select.fz-in{ appearance:none; -webkit-appearance:none; }
#gyl-fizza-root .fz-card-grid{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
#gyl-fizza-root .fz-card-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#gyl-fizza-root .fz-card-note{ margin:2px 0 0; font-size:11.5px; color:#9fd8b0; line-height:1.5; }
#gyl-fizza-root .fz-pay-err{ margin:0; padding:9px 12px; border-radius:9px; background:rgba(220,80,60,.14);
  border:1px solid rgba(220,80,60,.4); color:#f3b3a8; font-size:12.5px; }
#gyl-fizza-root .fz-pay-confirm{ min-height:48px; padding:13px 18px; border:0; border-radius:12px; cursor:pointer;
  font-size:15px; font-weight:700; color:#15120f; background:linear-gradient(135deg,#f0c674,#d9952f); }
#gyl-fizza-root .fz-pay-confirm:hover{ filter:brightness(1.05); }
#gyl-fizza-root .fz-pay-chat{ display:flex; flex-direction:column; gap:12px; }
@media (max-width:560px){
  #gyl-fizza-root .fz-pay-methods{ grid-template-columns:1fr; }
  #gyl-fizza-root .fz-card-grid{ grid-template-columns:1fr 1fr; }
}

/* === v0.28.36 — Book Instead handoff (quote→reservation) + resume summary === */
#gyl-fizza-root .fz-booklink{ display:block; text-align:center; margin:-8px auto 18px; max-width:max-content;
  font-size:12.5px; color:#b8b2a6; text-decoration:none; opacity:.9; }
#gyl-fizza-root .fz-booklink b{ color:var(--fz-amber-glow,#f0a44a); }
#gyl-fizza-root .fz-booklink:hover{ opacity:1; }
#gyl-fizza-root .fz-bookcta{ margin:4px 0 2px; padding:14px 16px; border:1px solid rgba(240,164,74,.3);
  border-radius:14px; background:rgba(240,164,74,.08); text-align:center; }
#gyl-fizza-root .fz-bookcta-lead{ font-size:13px; color:#e8e2d6; margin:0 0 10px; line-height:1.5; }
#gyl-fizza-root .fz-bookcta-btn{ min-height:46px; padding:12px 20px; border:0; border-radius:11px; cursor:pointer;
  font-size:15px; font-weight:700; color:#15120f; background:linear-gradient(135deg,#f0c674,#d9952f); }
#gyl-fizza-root .fz-bookcta-btn:hover{ filter:brightness(1.05); }
#gyl-fizza-root .fz-bookcta-link{ color:var(--fz-amber-glow,#f0a44a); font-weight:700; text-decoration:underline; }
/* "Already have a quote? enter your code" panel on the reservation page — premium redesign */
#gyl-fizza-root .fz-codepanel{ position:relative; margin:0 0 18px; padding:22px 20px 18px; border:1px solid rgba(240,164,74,.34);
  border-radius:18px; background:linear-gradient(180deg,rgba(240,164,74,.12),rgba(0,0,0,.20)); }
#gyl-fizza-root .fz-cp-head{ display:flex; align-items:center; gap:10px; font:600 18px/1.25 Fraunces,Georgia,serif; color:var(--fz-amber-glow,#f0a44a); margin:0 0 6px; }
#gyl-fizza-root .fz-cp-head::before{ content:""; flex:none; width:30px; height:30px; border-radius:9px;
  background:var(--fz-gold-soft,rgba(240,164,74,.18)) url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23f0a44a'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='15.5'%20cy='8.5'%20r='4.5'/%3E%3Cpath%20d='M12.3%2011.7%204%2020l2%202'/%3E%3Cpath%20d='m7%2017%202%202'/%3E%3C/svg%3E") center/16px no-repeat; }
#gyl-fizza-root .fz-cp-sub{ font-size:13px; color:#c9c3b8; line-height:1.55; margin:0 0 15px; }
#gyl-fizza-root .fz-cp-row{ display:flex; gap:10px; margin:0 0 12px; flex-wrap:wrap; }
#gyl-fizza-root .fz-cp-code, #gyl-fizza-root .fz-cp-phone{ flex:1 1 150px; min-height:52px; padding:14px 16px; box-sizing:border-box;
  border:1px solid rgba(255,255,255,.18); border-radius:13px; background:rgba(0,0,0,.30); color:#f5f1e8;
  font:600 16px/1 ui-monospace,"SF Mono",Menlo,monospace; letter-spacing:.08em; text-transform:uppercase; }
#gyl-fizza-root .fz-cp-code{ width:100%; margin:0 0 12px; }
#gyl-fizza-root .fz-cp-phone{ text-transform:none; letter-spacing:normal; font-family:inherit; font-weight:500; }
#gyl-fizza-root .fz-cp-code::placeholder, #gyl-fizza-root .fz-cp-phone::placeholder{ color:#8f887d; letter-spacing:normal; text-transform:none; font-weight:500; }
#gyl-fizza-root .fz-cp-code:focus, #gyl-fizza-root .fz-cp-phone:focus, #gyl-fizza-root .fz-cp-otp:focus{ outline:none; border-color:var(--fz-amber-glow,#f0a44a); box-shadow:0 0 0 3px rgba(240,164,74,.18); }
#gyl-fizza-root .fz-cp-otp{ width:100%; box-sizing:border-box; min-height:60px; margin:0 0 12px; padding:14px 16px; text-align:center;
  border:1px solid rgba(255,255,255,.18); border-radius:13px; background:rgba(0,0,0,.30); color:#f5f1e8;
  font:700 26px/1 ui-monospace,"SF Mono",Menlo,monospace; letter-spacing:14px; text-indent:14px; }
#gyl-fizza-root .fz-cp-otp::placeholder{ color:#8f887d; letter-spacing:1.5px; text-indent:0; font:500 15px/1 Mulish,sans-serif; }
#gyl-fizza-root .fz-cp-go{ width:100%; min-height:52px; border:0; border-radius:13px; cursor:pointer;
  font:700 15.5px/1 Mulish,sans-serif; color:#15120f; background:linear-gradient(135deg,#f0c674,#d9952f);
  box-shadow:0 12px 26px -12px rgba(240,164,74,.5); transition:transform .15s,box-shadow .15s,filter .15s; }
#gyl-fizza-root .fz-cp-go:hover{ filter:brightness(1.04); transform:translateY(-1px); }
#gyl-fizza-root .fz-cp-msg{ margin:11px 0 0; font-size:12.5px; color:#c9c3b8; }
#gyl-fizza-root .fz-cp-msg.is-warn{ color:#f0b48a; }
/* secondary actions = ghost pills + a hairline-divided "start fresh" link (no more underlined text) */
#gyl-fizza-root .fz-cp-alt{ display:inline-flex; align-items:center; justify-content:center; min-height:40px; margin:13px 8px 0 0; padding:9px 16px;
  border:1px solid rgba(255,255,255,.22); border-radius:999px; background:transparent; color:var(--fz-amber-glow,#f0a44a);
  font:600 12.5px/1 Mulish,sans-serif; text-decoration:none; cursor:pointer; transition:border-color .15s,background .15s; }
#gyl-fizza-root .fz-cp-alt:hover{ border-color:var(--fz-amber-glow,#f0a44a); background:rgba(240,164,74,.10); }
#gyl-fizza-root .fz-cp-fresh{ display:block; width:100%; box-sizing:border-box; margin:15px 0 0; padding:13px 6px 2px; border:0;
  border-top:1px solid rgba(255,255,255,.12); background:none; cursor:pointer; font:600 12.5px/1.3 Mulish,sans-serif; color:#9a948a; text-decoration:none; }
#gyl-fizza-root .fz-cp-fresh:hover{ color:#d8d2c6; }
#gyl-fizza-root .fz-resume-summary{ margin:0 0 18px; padding:16px; border:1px solid rgba(240,164,74,.25);
  border-radius:14px; background:rgba(0,0,0,.22); }
#gyl-fizza-root .fz-rs-head{ font:600 14px Georgia,serif; color:var(--fz-amber-glow,#f0a44a); margin:0 0 10px; }
#gyl-fizza-root .fz-rs-grid{ display:grid; grid-template-columns:1fr; gap:7px; }
#gyl-fizza-root .fz-rs-row{ display:flex; justify-content:space-between; gap:14px; font-size:13px; }
#gyl-fizza-root .fz-rs-row span{ color:#8f887d; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:1px; text-transform:uppercase; }
#gyl-fizza-root .fz-rs-row b{ color:#f5f1e8; font-weight:600; text-align:right; }
#gyl-fizza-root .fz-rs-edit{ margin:12px 0 0; background:none; border:0; color:#b8b2a6; font-size:12.5px;
  text-decoration:underline; cursor:pointer; padding:4px 0; }
#gyl-fizza-root .fz-rs-edit:hover{ color:var(--fz-amber-glow,#f0a44a); }

/* === v0.28.57 · Compact quote landing (Wali: kill dead space, one-line pills+reviews) === */
#gyl-fizza-root{ min-height:auto !important; padding:16px 16px 22px !important; }
#gyl-fizza-root .fz-status-strip{ flex-direction:row !important; flex-wrap:wrap !important; justify-content:center !important;
  align-items:center !important; gap:12px !important; margin:0 auto 14px !important; }
#gyl-fizza-root .fz-booklink{ margin:0 auto 12px !important; }
#gyl-fizza-root .fz-chooser-tabs{ margin:2px 0 12px !important; }

/* === v0.28.71 — taller section + Sarah "greeter" intro (one face, icon cards) ====== */
/* Request: make the booking section a touch taller, top & bottom. */
#gyl-fizza-root{ padding-top:34px !important; padding-bottom:46px !important; }

/* Introduce Sarah ONCE — a warm human greeter above the three options — instead of the
   same photo repeated on every card. The cards keep their distinct mode icons. */
#gyl-fizza-root .fz-greeter{ display:flex; align-items:center; justify-content:center; gap:15px;
  width:max-content; max-width:92%; margin:2px auto 22px; padding:11px 22px 11px 13px; border-radius:999px;
  background:linear-gradient(180deg, rgba(240,164,74,.08), rgba(255,255,255,.015));
  border:1px solid rgba(240,164,74,.20); box-shadow:0 10px 30px -18px rgba(0,0,0,.8); }
#gyl-fizza-root .fz-greeter-av{ position:relative; width:56px; height:56px; flex:0 0 auto; }
#gyl-fizza-root .fz-greeter-av .fz-av-img,
#gyl-fizza-root .fz-greeter-av .fz-av-ill{ width:56px; height:56px; border-radius:50%; object-fit:cover;
  object-position:50% 26%; display:block; border:2px solid rgba(240,164,74,.6);
  box-shadow:0 6px 16px -6px rgba(0,0,0,.7); background:#241f1b; }
#gyl-fizza-root .fz-greeter-av .fz-av-ill{ padding:6px; }
#gyl-fizza-root .fz-greeter-dot{ position:absolute; right:2px; bottom:2px; width:13px; height:13px;
  border-radius:50%; background:#157a3a; border:2.5px solid #141312; box-shadow:0 0 8px #157a3a; }
#gyl-fizza-root .fz-greeter-txt{ text-align:left; }
#gyl-fizza-root .fz-greeter-txt h3{ margin:0; font-family:"Fraunces","Georgia",serif; font-weight:500;
  font-size:18px; line-height:1.1; color:var(--fz-surface); letter-spacing:-.01em; }
#gyl-fizza-root .fz-greeter-txt h3 em{ font-style:italic; color:var(--fz-amber-glow); }
#gyl-fizza-root .fz-greeter-txt p{ margin:3px 0 0; font-family:"Montserrat",sans-serif; font-size:11.5px;
  color:#9a948b; letter-spacing:.02em; }
#gyl-fizza-root .fz-greeter-txt p b{ color:#7ea04f; font-weight:600; }
@media (max-width:600px){ #gyl-fizza-root .fz-greeter{ width:auto; padding:10px 16px 10px 12px; gap:12px; }
  #gyl-fizza-root .fz-greeter-av,#gyl-fizza-root .fz-greeter-av .fz-av-img,#gyl-fizza-root .fz-greeter-av .fz-av-ill{ width:48px; height:48px; } }

/* === v0.28.75 — "✎ Change" pill on each captured chat answer (re-pick mid-flow) ===
   The user bubble is LIGHT, so use a solid gold fill + DARK text for clear contrast. */
#gyl-fizza-root .fz-msg.user .fz-edit-pill{ display:inline-flex; align-items:center; gap:3px;
  margin-left:10px; padding:3px 11px; font:700 10px/1 "JetBrains Mono", monospace;
  letter-spacing:.08em; text-transform:uppercase; color:#15120f !important;
  background:linear-gradient(180deg,#f0c674,#d9952f); border:0; border-radius:999px;
  cursor:pointer; vertical-align:middle; box-shadow:0 2px 6px -1px rgba(180,120,20,.5);
  transition:filter .15s, transform .12s; }
#gyl-fizza-root .fz-msg.user .fz-edit-pill:hover{ filter:brightness(1.08); transform:translateY(-1px); }
#gyl-fizza-root .fz-msg.user .fz-edit-pill:active{ transform:translateY(0); }
#gyl-fizza-root .fz-msg.user .fz-edit-pill.is-used{ opacity:.45; pointer-events:none; text-decoration:line-through; }
/* let the meta line wrap so the pill never overlaps the timestamp on narrow bubbles */
#gyl-fizza-root .fz-msg.user .fz-msg-meta{ display:flex; align-items:center; flex-wrap:wrap; gap:4px; }

/* Manage-booking lookup result (v0.28.80) */
#fz-edit-result{margin-top:18px;}
.fz-bk-hint,.fz-bk-loading,.fz-bk-err{font-size:13.5px;line-height:1.55;text-align:center;max-width:420px;margin:14px auto;color:#c9c3b8;}
.fz-bk-err{color:#e7b15a;}
.fz-bk-loading b{color:var(--fz-amber-glow,#e7b15a);font-family:'JetBrains Mono',monospace;letter-spacing:2px;}
.fz-bk{max-width:520px;margin:6px auto 0;border:1px solid rgba(223,186,115,.22);border-radius:14px;background:rgba(20,18,15,.5);overflow:hidden;}
.fz-bk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(223,186,115,.16);background:linear-gradient(135deg,rgba(223,186,115,.12),rgba(223,186,115,.03));flex-wrap:wrap;}
.fz-bk-ref{font-family:'JetBrains Mono',monospace;letter-spacing:2px;font-size:15px;color:var(--fz-amber-glow,#e7b15a);font-weight:700;}
.fz-bk-status{font-size:12px;color:#d8d2c6;text-align:right;}
.fz-bk-rows{padding:8px 18px 4px;}
.fz-bk-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13.5px;}
.fz-bk-row:last-child{border-bottom:0;}
.fz-bk-l{color:#9a948a;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600;white-space:nowrap;}
.fz-bk-v{color:#efe9dd;text-align:right;}
.fz-bk-note{padding:14px 18px 18px;font-size:13px;color:#c9c3b8;text-align:center;line-height:1.6;}
.fz-bk-call{display:inline-block;margin-top:6px;padding:9px 18px;border-radius:999px;background:var(--gold-gradient,linear-gradient(135deg,#F7E4BE,#DFBA73 45%,#BD9242 80%,#9E732E));color:#15120f;font-weight:700;font-size:13px;text-decoration:none;}

/* Inline booking lookup — "what's next" line (v0.28.81) */
.fz-bk-next{max-width:520px;margin:10px auto 2px;font-size:13.5px;line-height:1.6;color:#d8d2c6;}
.fz-bk-next b{color:var(--fz-amber-glow,#e7b15a);}

/* === v0.28.88 — Mobile: compact header (Read more) + full-bleed === */
#gyl-fizza-root .fz-hdr-toggle{ display:none; }
@media (max-width:600px){
  /* Full-bleed: kill the side gutters so the widget touches the screen edges. */
  #gyl-fizza-root{ padding-left:6px !important; padding-right:6px !important; border-radius:0 !important; }
  /* Collapsed header by default — show only "Dispatch live" + a Read-more link. */
  #gyl-fizza-root .fz-hdr-toggle{ display:block; margin:9px auto 2px; padding:4px 8px; background:none; border:0;
    color:var(--fz-amber-glow,#f0a44a); font:600 12.5px/1 "Montserrat",sans-serif; letter-spacing:.02em;
    text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
  #gyl-fizza-root:not(.fz-hdr-open) .fz-statbar .fz-chip:not(.fz-chip-live){ display:none !important; }
  #gyl-fizza-root:not(.fz-hdr-open) .fz-greview{ display:none !important; }
  #gyl-fizza-root:not(.fz-hdr-open) .fz-booklink{ display:none !important; }
  #gyl-fizza-root .fz-status-strip{ margin:0 auto 8px !important; gap:8px !important; }
  /* Smaller greeter for mobile. */
  #gyl-fizza-root .fz-greeter{ padding:8px 14px 8px 9px !important; gap:10px !important; margin:0 auto 14px !important; }
  #gyl-fizza-root .fz-greeter-av,
  #gyl-fizza-root .fz-greeter-av .fz-av-img,
  #gyl-fizza-root .fz-greeter-av .fz-av-ill{ width:40px !important; height:40px !important; }
  #gyl-fizza-root .fz-greeter-txt h3{ font-size:15px !important; }
  #gyl-fizza-root .fz-greeter-txt p{ font-size:10.5px !important; }
  /* Cards stretch edge-to-edge. */
  #gyl-fizza-root .fz-chooser-grid{ gap:10px !important; }
  #gyl-fizza-root .fz-card{ padding:18px 16px 16px !important; }
}

/* === v0.28.90 — Mobile chrome immunization (beats the site-wide 16px-min/44px-tap CSS) === */
@media (max-width:600px){
  /* Panel head: compact, name/role/status sized correctly, never balloon. */
  #gyl-fizza-root .fz-panel-head{ padding:11px 13px !important; gap:9px !important; align-items:center !important; }
  #gyl-fizza-root .fz-agent{ gap:9px !important; min-width:0 !important; flex:1 1 auto !important; }
  #gyl-fizza-root .fz-who{ min-width:0 !important; }
  #gyl-fizza-root .fz-who h4{ font-size:15px !important; line-height:1.15 !important; gap:3px 7px !important; }
  #gyl-fizza-root .fz-who .fz-role{ font-size:11px !important; }
  #gyl-fizza-root .fz-status{ font-size:11px !important; margin-top:2px !important; line-height:1.3 !important; }
  #gyl-fizza-root .fz-avatar, #gyl-fizza-root .fz-agent .fz-av-img, #gyl-fizza-root .fz-agent .fz-av-ill{ width:40px !important; height:40px !important; }
  /* Top-right actions (Swap to chat / close) — single line, compact. */
  #gyl-fizza-root .fz-panel-head > button,
  #gyl-fizza-root [data-action="switch-chat"],
  #gyl-fizza-root .fz-form-swap{ white-space:nowrap !important; font-size:10px !important; padding:7px 11px !important;
    line-height:1 !important; min-width:0 !important; min-height:0 !important; height:auto !important; flex:0 0 auto !important; }
  #gyl-fizza-root .fz-close{ width:30px !important; height:30px !important; min-width:0 !important; padding:0 !important;
    font-size:16px !important; line-height:1 !important; flex:0 0 auto !important; }
  /* Stepper + STEP label + REQUIRED pill — small monospace, no 3-line wrap. */
  #gyl-fizza-root .fz-stage-rail{ padding:10px 13px !important; }
  #gyl-fizza-root .fz-stage{ font-size:9px !important; letter-spacing:.5px !important; gap:5px !important; }
  #gyl-fizza-root #fz-form-step-label{ font-size:10px !important; letter-spacing:.5px !important; line-height:1.5 !important; }
  #gyl-fizza-root .fz-required{ font-size:8px !important; padding:2px 6px !important; letter-spacing:.6px !important; }
  #gyl-fizza-root .fz-form-hint{ display:none !important; }   /* "Press ⏎ to continue" — useless on touch */
  /* Question + helper sized for phones. */
  #gyl-fizza-root .fz-form-question{ font-size:19px !important; line-height:1.2 !important; }
  #gyl-fizza-root .fz-form-helper{ font-size:12.5px !important; line-height:1.45 !important; }
  #gyl-fizza-root .fz-form-body{ padding:14px 15px 12px !important; }
  /* Chat thread bubbles + input sized correctly (not forced to 16px slabs). */
  #gyl-fizza-root .fz-msg{ font-size:13.5px !important; line-height:1.45 !important; }
  #gyl-fizza-root .fz-chat-input{ font-size:14px !important; }
  #gyl-fizza-root .fz-edit-banner .fz-edit-text{ font-size:12.5px !important; line-height:1.35 !important; }
}

/* Kill the THEME's heading underline (h*::after gold bar) bleeding into the widget — it
   landed like a strikethrough across the question/helper. Sarah supplies her own accents. */
#gyl-fizza-root h2::after, #gyl-fizza-root h3::after, #gyl-fizza-root h4::after,
#gyl-fizza-root h2::before, #gyl-fizza-root h3::before, #gyl-fizza-root h4::before,
#gyl-fizza-root .fz-form-question::after, #gyl-fizza-root .fz-form-question::before{ content:none !important; display:none !important; }

/* === v0.28.95 — Booking pages on mobile: drop the tall site header so Sarah gets the WHOLE
   screen (no sticky bar, much bigger chat box), and shrink the oversized message meta that the
   site-wide 16px-min CSS was inflating. The header-hide + full-screen panel are scoped to the
   STANDALONE widget pages via :not(:has(#gyl-fizza-embed)), so the homepage embed iframe — which
   sizes itself to its content — is left on its prior height. This stylesheet only loads where the
   widget renders. */
/* body.gyl-fizza-page is added by the plugin ONLY on the dedicated widget pages
   (/get-a-quote/, /reservation/) and never inside the embed iframe — a plain class so
   every iOS Safari honours it (a :has() rule gets dropped wholesale on older Safari). */
@media (max-width:600px){
  /* Reservation/quote pages KEEP the full website — header + footer + structure stay visible and the
     widget is a normal in-page section, NOT a full-screen takeover. (Header-hide + page-fill removed.) */
  body.gyl-fizza-page #gyl-fizza-root .fz-panel{
    height:auto !important; max-height:none !important; min-height:auto !important; }
  /* Trim message bubbles: the SARAH·time / YOU·time meta + Change pill ballooned to 16px from the
     site-wide min-font rule, dwarfing the actual reply. Restore the intended compact sizes. */
  #gyl-fizza-root .fz-chat-thread{ gap:9px !important; padding:14px 16px !important; }
  #gyl-fizza-root .fz-msg{ padding:9px 12px !important; }
  #gyl-fizza-root .fz-msg-meta{ font-size:9px !important; letter-spacing:.5px !important;
    margin-top:3px !important; line-height:1.2 !important; }
  #gyl-fizza-root .fz-msg.user .fz-edit-pill{ font-size:10px !important; padding:3px 8px !important;
    letter-spacing:.3px !important; line-height:1 !important; min-height:0 !important; height:auto !important; }
  /* Compact the bulky "Already booked with us?" banner so it stops eating the chat area. */
  #gyl-fizza-root .fz-edit-banner{ padding:9px 11px !important; gap:9px !important; }
  #gyl-fizza-root .fz-edit-banner .fz-edit-text{ font-size:12px !important; line-height:1.3 !important; }
  #gyl-fizza-root .fz-edit-banner .fz-edit-cta{ padding:7px 13px !important; font-size:12px !important;
    min-height:0 !important; white-space:nowrap !important; }
}

/* === v0.28.97 — Homepage embed: bigger chat box. The iframe auto-sizes to its content
   (no viewport cap), and the conversation thread was being squeezed to ~257px by the chrome
   stacked above it. Give the thread a tall FIXED floor so the chat area roughly doubles.
   Must be px, never vh/% — a viewport-relative height inside an auto-resized iframe feeds the
   parent's resize loop and grows without bound. Embed-only (standalone pages fill the screen
   via the .gyl-fizza-page rules above). */
@media (max-width:600px){
  body.gyl-fizza-embed-page #gyl-fizza-root .fz-chat-thread{ min-height:470px !important; }
  body.gyl-fizza-embed-page #gyl-fizza-root .fz-voice-body{ min-height:430px !important; }
}

/* === v0.28.93 — Hide the floating WhatsApp button on booking pages (it overlapped the chat box).
   This file only loads where the Sarah widget renders, so it's scoped to quote/reservation pages. */
html body a.float-whatsapp-btn[href]{ display:none !important; visibility:hidden !important; }

/* === v0.32.0 — Bilingual EN|FR toggle (top-right of the widget). === */
#gyl-fizza-root{ position:relative; }
#gyl-fizza-root .fz-lang{ position:absolute; top:8px; right:10px; z-index:30; display:flex; gap:2px;
  background:rgba(0,0,0,.28); border:1px solid rgba(201,164,60,.4); border-radius:999px; padding:2px; backdrop-filter:blur(4px); }
#gyl-fizza-root .fz-lang button{ all:unset; cursor:pointer; font:700 12px/1 "Manrope",system-ui,sans-serif; letter-spacing:.5px;
  color:#d7d1c4; padding:9px 13px; border-radius:999px; min-width:40px; min-height:22px; text-align:center; box-sizing:border-box; }
#gyl-fizza-root .fz-lang button.on{ background:linear-gradient(135deg,#f0c674,#d9952f); color:#15120f; }
@media (max-width:600px){ #gyl-fizza-root .fz-lang{ top:6px; right:8px; } }

/* === v0.34.0 — Mobile: once a mode is active, promote the widget to a TRUE full-screen chat overlay
   so the conversation + input bar are always on-screen (previously the full-height panel started
   ~450px down the page — pushed below by the status strip + greeter + tabs + page content — so the
   input sat far below the fold). Scoped to the standalone widget pages (body.gyl-fizza-page); the
   homepage embed iframe (gyl-fizza-embed-page) is deliberately untouched. */
@media (max-width:600px){
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root{
    position:relative !important; margin:0 auto !important; width:100% !important;
    display:flex !important; flex-direction:column !important; overflow:visible !important; }
  /* Hide the intro chrome — you're already in a mode; switch via the bottom bar. */
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root .fz-status-strip,
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root .fz-greeter,
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root .fz-chooser-grid,
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root .fz-chooser-tabs,
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root .fz-lang{ display:none !important; }
  /* The active panel fills the space between the header and the bottom bar; its thread scrolls. */
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root .fz-panel.is-active{
    flex:1 1 auto !important; height:auto !important; min-height:0 !important; max-height:none !important;
    display:flex !important; flex-direction:column !important;
    overflow-y:auto !important; -webkit-overflow-scrolling:touch !important; }
  /* Bottom mode-bar flows normally at the foot of the overlay (was absolute → overlapped the input). */
  body.gyl-fizza-page.gyl-fizza-active #gyl-fizza-root #fz-bottom-bar{
    position:static !important; transform:none !important; left:auto !important; right:auto !important;
    bottom:auto !important; width:100% !important; max-width:none !important; margin:0 !important;
    border-radius:0 !important; flex:0 0 auto !important; }
}

/* ============================================================
/* ============================================================
   PER-SITE LIGHT THEME (v0.44.0) — NAVY-ANCHORED LUXURY.
   Matches the live taxi site: navy #0B1E3F is the ACTION color
   (filled buttons), champagne #C9A961 is a HAIRLINE ACCENT only
   (borders, labels, icon strokes, stars — never a button fill),
   warm ivory surface, Cormorant Garamond display. London (no
   theme set) stays the dark default — these rules are scoped to
   .fz-theme-light and never touch it.
   Tokens pushed per-site via /config: --fz-on (navy/ink),
   --fz-surface-c, --fz-line-c, --fz-accent (gold), --fz-r, --fz-display.
   ============================================================ */
#gyl-fizza-root.fz-theme-light{
  --fz-navy: var(--fz-on, #0B1E3F);
  --fz-ink: var(--fz-on, #0B1E3F);
  --fz-muted: #5c6678;
  --fz-card: var(--fz-surface-c, #ffffff);
  --fz-card-2: #f8f4ec;                 /* warm ivory, NOT cold blue */
  --fz-line: var(--fz-line-c, rgba(11,30,63,.12));
  --fz-line-2: rgba(11,30,63,.20);
  --fz-gold: var(--fz-accent, #C9A961);
  --fz-gold-soft: rgba(201,169,97,.16);
  --fz-gold-line: rgba(201,169,97,.55);
  --fz-radius: var(--fz-r, 8px);
  --fz-fdisplay: var(--fz-display, "Cormorant Garamond", "Georgia", serif);
  color: var(--fz-ink) !important;
  background: linear-gradient(180deg,#fbf9f4 0%, #f1ece1 100%) !important;
}

/* ---------- PRIMARY ACTIONS → NAVY FILL, white text, gold hairline on hover ---------- */
#gyl-fizza-root.fz-theme-light .fz-card .fz-pick,
#gyl-fizza-root.fz-theme-light .fz-form-next,
#gyl-fizza-root.fz-theme-light .fz-edit-cta,
#gyl-fizza-root.fz-theme-light .fz-vc-btn.is-primary,
#gyl-fizza-root.fz-theme-light .fz-mic-button,
#gyl-fizza-root.fz-theme-light .fz-icon-btn.send,
#gyl-fizza-root.fz-theme-light .fz-bookcta-btn{
  background: var(--fz-navy) !important;
  color: #fff !important;
  border: 1px solid var(--fz-navy) !important;
  box-shadow: 0 12px 26px -14px rgba(11,30,63,.55) !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
}
#gyl-fizza-root.fz-theme-light .fz-card .fz-pick:hover,
#gyl-fizza-root.fz-theme-light .fz-form-next:hover,
#gyl-fizza-root.fz-theme-light .fz-edit-cta:hover,
#gyl-fizza-root.fz-theme-light .fz-vc-btn.is-primary:hover,
#gyl-fizza-root.fz-theme-light .fz-mic-button:hover,
#gyl-fizza-root.fz-theme-light .fz-bookcta-btn:hover{
  box-shadow: 0 16px 34px -14px rgba(11,30,63,.6), inset 0 0 0 1px var(--fz-gold) !important;
  transform: translateY(-1px);
}
/* secondary / ghost buttons → navy outline */
#gyl-fizza-root.fz-theme-light .fz-form-prev,
#gyl-fizza-root.fz-theme-light .fz-edit-lookup,
#gyl-fizza-root.fz-theme-light .fz-form-swap{
  background: transparent !important; color: var(--fz-navy) !important;
  border: 1px solid var(--fz-line-2) !important;
}
#gyl-fizza-root.fz-theme-light .fz-form-prev:hover,
#gyl-fizza-root.fz-theme-light .fz-edit-lookup:hover{ background: var(--fz-card-2) !important; border-color: var(--fz-gold-line) !important; }

/* ---------- SURFACES ---------- */
#gyl-fizza-root.fz-theme-light .fz-panel,
#gyl-fizza-root.fz-theme-light .fz-card{
  background: var(--fz-card) !important; border: 1px solid var(--fz-line) !important;
  box-shadow: 0 24px 60px -38px rgba(11,30,63,.42) !important;
}
#gyl-fizza-root.fz-theme-light .fz-card{ border-radius: calc(var(--fz-radius) + 6px) !important; }
#gyl-fizza-root.fz-theme-light .fz-card:hover{ border-color: var(--fz-gold-line) !important; box-shadow: 0 30px 64px -34px rgba(11,30,63,.4) !important; }
#gyl-fizza-root.fz-theme-light .fz-card.featured{ background: linear-gradient(180deg,#fff,#fbf8f1) !important; border-color: var(--fz-gold-line) !important; box-shadow: 0 30px 70px -34px rgba(11,30,63,.45) !important; }
#gyl-fizza-root.fz-theme-light .fz-panel-head{ background: var(--fz-card-2) !important; border-bottom: 1px solid var(--fz-line) !important; }
#gyl-fizza-root.fz-theme-light .fz-panel-head *{ color: var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-role,#gyl-fizza-root.fz-theme-light .fz-msg-meta{ color: var(--fz-muted) !important; }

/* headings = navy serif, em = champagne */
#gyl-fizza-root.fz-theme-light .fz-card h3,
#gyl-fizza-root.fz-theme-light .fz-greeter-txt h3,
#gyl-fizza-root.fz-theme-light .fz-form-question{ color: var(--fz-ink) !important; font-family: var(--fz-fdisplay) !important; font-weight: 600 !important; letter-spacing: 0 !important; }
#gyl-fizza-root.fz-theme-light .fz-card h3 em,
#gyl-fizza-root.fz-theme-light .fz-greeter-txt h3 em,
#gyl-fizza-root.fz-theme-light .fz-msg.agent em{ color: var(--fz-gold) !important; font-style: italic !important; }
#gyl-fizza-root.fz-theme-light .fz-card .fz-blurb,
#gyl-fizza-root.fz-theme-light .fz-card .fz-meta,
#gyl-fizza-root.fz-theme-light .fz-greeter-txt p,
#gyl-fizza-root.fz-theme-light .fz-form-helper,
#gyl-fizza-root.fz-theme-light .fz-form-step-meta,
#gyl-fizza-root.fz-theme-light .fz-form-hint{ color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-greeter-txt p b{ color: var(--fz-gold) !important; }

/* ---------- ICON TILE: navy-tint plate + gold hairline + champagne icon, NO peach glow ---------- */
#gyl-fizza-root.fz-theme-light .fz-icon-glow{ display: none !important; }
#gyl-fizza-root.fz-theme-light .fz-icon-wrap{ background: rgba(11,30,63,.045) !important; border: 1px solid var(--fz-gold-line) !important; border-radius: 14px !important; }
#gyl-fizza-root.fz-theme-light .fz-icon-svg,
#gyl-fizza-root.fz-theme-light .fz-card .fz-icon-svg{ color: var(--fz-gold) !important; }

/* ---------- BADGE (RECOMMENDED) → navy chip, champagne text ---------- */
#gyl-fizza-root.fz-theme-light .fz-card .fz-badge{
  background: var(--fz-navy) !important; color: var(--fz-gold) !important;
  border: 0 !important; letter-spacing: .14em !important; font-weight: 600 !important;
}

/* ---------- TABS → navy pill active ---------- */
#gyl-fizza-root.fz-theme-light .fz-tab{ color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-tab.active{ background: var(--fz-navy) !important; color: #fff !important; box-shadow: 0 6px 16px -8px rgba(11,30,63,.5) !important; }

/* ---------- STATUS BAR → white, navy text, gold icons, gold hairline dividers ---------- */
#gyl-fizza-root.fz-theme-light .fz-statbar{ background: var(--fz-card) !important; border: 1px solid var(--fz-line) !important; box-shadow: 0 12px 30px -22px rgba(11,30,63,.5) !important; }
#gyl-fizza-root.fz-theme-light .fz-statbar::after,#gyl-fizza-root.fz-theme-light .fz-statbar::before{ display: none !important; }
#gyl-fizza-root.fz-theme-light .fz-statbar .fz-chip{ color: var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-statbar .fz-chip + .fz-chip{ border-left: 1px solid var(--fz-line) !important; }
#gyl-fizza-root.fz-theme-light .fz-statbar .fz-chip svg{ color: var(--fz-gold) !important; }
#gyl-fizza-root.fz-theme-light .fz-statbar .fz-chip b{ color: var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-statbar .fz-chip:hover{ background: var(--fz-gold-soft) !important; }

/* ---------- GREETER + RESUME panel → warm ivory, navy heading, gold rule ---------- */
#gyl-fizza-root.fz-theme-light .fz-greeter{ background: var(--fz-card-2) !important; border: 1px solid var(--fz-line) !important; box-shadow: 0 10px 26px -20px rgba(11,30,63,.4) !important; }
#gyl-fizza-root.fz-theme-light .fz-edit,
#gyl-fizza-root.fz-theme-light .fz-resume,
#gyl-fizza-root.fz-theme-light .fz-codepanel,
#gyl-fizza-root.fz-theme-light .fz-resume-summary{ background: var(--fz-card-2) !important; border: 1px solid var(--fz-line) !important; color: var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-edit-title,
#gyl-fizza-root.fz-theme-light .fz-resume h3,
#gyl-fizza-root.fz-theme-light .fz-edit h3{ color: var(--fz-ink) !important; font-family: var(--fz-fdisplay) !important; }

/* ---------- MESSAGES ---------- */
#gyl-fizza-root.fz-theme-light .fz-msg.agent{ background: var(--fz-card-2) !important; color: var(--fz-ink) !important; border: 1px solid var(--fz-line) !important; }
#gyl-fizza-root.fz-theme-light .fz-msg.user{ background: var(--fz-navy) !important; color: #fff !important; border: 0 !important; }

/* ---------- INPUTS → white, navy text, navy-translucent border, gold focus ---------- */
#gyl-fizza-root.fz-theme-light .fz-chat-input,
#gyl-fizza-root.fz-theme-light .fz-form-input,
#gyl-fizza-root.fz-theme-light .fz-when-input,
#gyl-fizza-root.fz-theme-light .fz-edit-code-input,
#gyl-fizza-root.fz-theme-light .fz-in{ background:#fff !important; color: var(--fz-ink) !important; border: 1px solid var(--fz-line-2) !important; }
#gyl-fizza-root.fz-theme-light .fz-chat-input::placeholder,
#gyl-fizza-root.fz-theme-light .fz-form-input::placeholder,
#gyl-fizza-root.fz-theme-light .fz-in::placeholder{ color:#97a0b0 !important; }
#gyl-fizza-root.fz-theme-light .fz-chat-input:focus,
#gyl-fizza-root.fz-theme-light .fz-form-input:focus,
#gyl-fizza-root.fz-theme-light .fz-when-input:focus,
#gyl-fizza-root.fz-theme-light .fz-edit-code-input:focus,
#gyl-fizza-root.fz-theme-light .fz-in:focus{ border-color: var(--fz-gold) !important; box-shadow: 0 0 0 3px var(--fz-gold-soft) !important; }
#gyl-fizza-root.fz-theme-light .fz-chat-input-wrap{ background: var(--fz-card-2) !important; border-top: 1px solid var(--fz-line) !important; }

/* suggestion chips / quick replies → white chip, navy text, gold border on hover */
#gyl-fizza-root.fz-theme-light .fz-form-sug,
#gyl-fizza-root.fz-theme-light .fz-qc,
#gyl-fizza-root.fz-theme-light .fz-chip{ background:#fff !important; color: var(--fz-ink) !important; border: 1px solid var(--fz-line-2) !important; }
#gyl-fizza-root.fz-theme-light .fz-form-sug:hover,
#gyl-fizza-root.fz-theme-light .fz-qc:hover,
#gyl-fizza-root.fz-theme-light .fz-chip:hover{ background: var(--fz-card-2) !important; border-color: var(--fz-gold-line) !important; }

/* manage / outline pills → gold-outline */
#gyl-fizza-root.fz-theme-light .fz-booklink,
#gyl-fizza-root.fz-theme-light .fz-bookcta-link,
#gyl-fizza-root.fz-theme-light .fz-fleet-change{ background: transparent !important; color: var(--fz-navy) !important; border: 1px solid var(--fz-gold-line) !important; }

/* ---------- FORM stepper ---------- */
#gyl-fizza-root.fz-theme-light .fz-stage-track,
#gyl-fizza-root.fz-theme-light .fz-stages{ background: var(--fz-card-2) !important; border-bottom: 1px solid var(--fz-line) !important; }
#gyl-fizza-root.fz-theme-light .fz-stage{ color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-stage.active{ color: var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-stage-num{ background: rgba(11,30,63,.08) !important; color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-stage.active .fz-stage-num{ background: var(--fz-navy) !important; color:#fff !important; }
#gyl-fizza-root.fz-theme-light .fz-form-progress{ background: var(--fz-line) !important; }
#gyl-fizza-root.fz-theme-light .fz-form-progress-fill{ background: var(--fz-gold) !important; }   /* gold accent OK here (thin) */
#gyl-fizza-root.fz-theme-light .fz-required{ background: var(--fz-gold-soft) !important; color:#8a6d24 !important; border: 0 !important; }
#gyl-fizza-root.fz-theme-light .fz-form-hint kbd{ background: var(--fz-card-2) !important; color: var(--fz-ink) !important; border: 1px solid var(--fz-line-2) !important; }
#gyl-fizza-root.fz-theme-light .fz-form-check{ accent-color: var(--fz-navy) !important; }
#gyl-fizza-root.fz-theme-light .fz-form-trust,#gyl-fizza-root.fz-theme-light .fz-form-estimate{ color: var(--fz-muted) !important; }

/* ---------- CONFIRM + PAYMENT ---------- */
#gyl-fizza-root.fz-theme-light .fz-confirm{ background: var(--fz-card) !important; border: 1px solid var(--fz-line) !important; color: var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-confirm-head,
#gyl-fizza-root.fz-theme-light .fz-confirm-lead{ color: var(--fz-ink) !important; font-family: var(--fz-fdisplay) !important; }
#gyl-fizza-root.fz-theme-light .fz-confirm-badge{ background: var(--fz-navy) !important; color: var(--fz-gold) !important; }
#gyl-fizza-root.fz-theme-light .fz-confirm-row{ border-top: 1px solid var(--fz-line) !important; }
#gyl-fizza-root.fz-theme-light .fz-confirm-row span{ color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-confirm-row b,#gyl-fizza-root.fz-theme-light .fz-confirm-ref{ color: var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-confirm-foot,#gyl-fizza-root.fz-theme-light .fz-bookcta-lead{ color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-pay-opt{ background:#fff !important; color: var(--fz-ink) !important; border: 1px solid var(--fz-line-2) !important; }
#gyl-fizza-root.fz-theme-light .fz-pay-opt small{ color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-pay-opt.is-on{ border-color: var(--fz-navy) !important; background: var(--fz-card-2) !important; box-shadow: inset 0 0 0 1px var(--fz-navy) !important; }
#gyl-fizza-root.fz-theme-light .fz-pay-ic{ color: var(--fz-gold) !important; }

/* dropdowns / voice bubble */
#gyl-fizza-root.fz-theme-light .fz-place-menu,
#gyl-fizza-root.fz-theme-light .fz-voice-bubble{ background:#fff !important; border: 1px solid var(--fz-line) !important; color: var(--fz-ink) !important; }
/* light theme — code-panel (resume) + datetime buttons missed in first pass (v0.44.0) */
#gyl-fizza-root.fz-theme-light .fz-cp-go,
#gyl-fizza-root.fz-theme-light .fz-when-set{
  background: var(--fz-navy) !important; color:#fff !important;
  border: 1px solid var(--fz-navy) !important;
  box-shadow: 0 12px 26px -14px rgba(11,30,63,.55) !important; font-weight:600 !important;
}
#gyl-fizza-root.fz-theme-light .fz-cp-go:hover,
#gyl-fizza-root.fz-theme-light .fz-when-set:hover{
  box-shadow: 0 16px 34px -14px rgba(11,30,63,.6), inset 0 0 0 1px var(--fz-gold) !important; transform: translateY(-1px);
}
#gyl-fizza-root.fz-theme-light .fz-cp-head{ color: var(--fz-ink) !important; font-family: var(--fz-fdisplay) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-sub,#gyl-fizza-root.fz-theme-light .fz-cp-msg{ color: var(--fz-muted) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-alt,#gyl-fizza-root.fz-theme-light .fz-cp-fresh{ color: var(--fz-navy) !important; }
/* light theme — code-panel inputs (were grey from dark base) */
#gyl-fizza-root.fz-theme-light .fz-cp-code,
#gyl-fizza-root.fz-theme-light .fz-cp-otp,
#gyl-fizza-root.fz-theme-light .fz-cp-phone{ background:#fff !important; color:var(--fz-ink) !important; border:1px solid var(--fz-line-2) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-code:focus,
#gyl-fizza-root.fz-theme-light .fz-cp-otp:focus,
#gyl-fizza-root.fz-theme-light .fz-cp-phone:focus{ border-color:var(--fz-gold) !important; box-shadow:0 0 0 3px var(--fz-gold-soft) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-code::placeholder{ color:#97a0b0 !important; }
/* code-form redesign — taxi (light) refinements: ghost pills, hairline divider, gold focus ring */
#gyl-fizza-root.fz-theme-light .fz-cp-alt{ color:var(--fz-navy) !important; background:#fff !important; border:1px solid var(--fz-line-2) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-alt:hover{ border-color:var(--fz-gold-line) !important; background:var(--fz-gold-soft) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-fresh{ color:var(--fz-muted) !important; border-top:1px solid var(--fz-line) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-fresh:hover{ color:var(--fz-ink) !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-otp::placeholder{ color:#97a0b0 !important; }
#gyl-fizza-root.fz-theme-light .fz-cp-code:focus,#gyl-fizza-root.fz-theme-light .fz-cp-phone:focus,#gyl-fizza-root.fz-theme-light .fz-cp-otp:focus{ box-shadow:0 0 0 3px var(--fz-gold-soft) !important; }

/* ============================================================================
   CLEAN theme — Limo-Anywhere-style light/blue. Apply WITH .fz-theme-light
   (class="… fz-theme-light fz-theme-clean"); this only swaps the palette, so
   every light-mode component rule above is reused. Primary=blue, ink=dark,
   accent=blue, cards=white, cool panels, rounder radius, clean sans (no serif).
   ============================================================================ */
#gyl-fizza-root.fz-theme-clean{
  --fz-navy:#15120f;                 /* primary surfaces / active = near-black ink */
  --fz-ink:#16130d;                  /* body text */
  --fz-muted:#6b6557;
  --fz-card:#ffffff;
  --fz-card-2:#faf7ee;               /* warm cream panel */
  --fz-line:rgba(20,18,12,.13);
  --fz-line-2:rgba(20,18,12,.20);
  --fz-gold:#9a7400;                 /* accent text/icons/borders = dark gold */
  --fz-gold-soft:rgba(255,204,0,.14);
  --fz-gold-line:rgba(154,116,0,.45);
  --fz-radius:12px;
  --fz-fdisplay:Manrope,system-ui,-apple-system,sans-serif;
  color:var(--fz-ink)!important;
  background:linear-gradient(180deg,#fffdf6 0%,#f6f1e4 100%)!important;
}
/* clean-theme polish: gold fills carry DARK ink (#15120f) text/icons (gold on gold is unreadable) */
#gyl-fizza-root.fz-theme-clean .fz-required{ background:var(--fz-gold-soft)!important; color:#7a5c00!important; }
#gyl-fizza-root.fz-theme-clean .fz-confirm-badge{ background:linear-gradient(135deg,var(--fz-accent-glow,#FFCC00),var(--fz-accent,#f0a500))!important; color:#15120f!important; }
#gyl-fizza-root.fz-theme-clean .fz-cp-go{ background:linear-gradient(135deg,var(--fz-accent-glow,#FFCC00),var(--fz-accent,#f0a500))!important; color:#15120f!important; border-color:transparent!important; }
#gyl-fizza-root.fz-theme-clean .fz-cp-go:hover{ box-shadow:0 14px 30px -12px rgba(240,165,0,.55)!important; }
/* clean theme — the amber accent variable carries the brand fill (accent_hex from the
 * per-site gyl_fizza_brand option flows in via the inline <style> on #gyl-fizza-root).
 * Falls back to the generic GOLD when no brand accent is set (e.g. the taxi site). Dark
 * text sits on top per-component. NOTE: do NOT redeclare --fz-accent-glow here or the
 * higher-specificity class would clobber the per-site brand var. */
#gyl-fizza-root.fz-theme-clean{ --fz-amber-glow:var(--fz-accent-glow,#FFCC00); --fz-amber:var(--fz-accent,#f0a500); }
#gyl-fizza-root.fz-theme-clean .fz-lang button.on{ background:linear-gradient(135deg,var(--fz-accent-glow,#FFCC00),var(--fz-accent,#f0a500))!important; color:#15120f!important; }
#gyl-fizza-root.fz-theme-clean .fz-card.featured{ background:#fff!important; border-color:var(--fz-gold-line)!important; box-shadow:0 30px 70px -34px rgba(20,18,12,.3)!important; }
#gyl-fizza-root.fz-theme-clean .fz-card.featured .fz-icon-wrap{ background:radial-gradient(circle at 50% 28%, rgba(255,204,0,.30), rgba(255,204,0,.06) 72%)!important; border-color:var(--fz-gold-line)!important; }
#gyl-fizza-root.fz-theme-clean .fz-card.featured .fz-icon-svg{ color:var(--fz-gold)!important; }
#gyl-fizza-root.fz-theme-clean .fz-cp-head::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a7400' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='15.5' cy='8.5' r='4.5'/%3E%3Cpath d='M12.3 11.7 4 20l2 2'/%3E%3Cpath d='m7 17 2 2'/%3E%3C/svg%3E")!important; }
/* gold "send"/primary buttons in clean theme carry dark ink, not white */
#gyl-fizza-root.fz-theme-clean .fz-icon-btn.send,
#gyl-fizza-root.fz-theme-clean .fz-icon-btn.send svg{ color:#15120f!important; stroke:#15120f!important; }
#gyl-fizza-root.fz-theme-clean .fz-pay-confirm,
#gyl-fizza-root.fz-theme-clean .fz-form-next{ background:linear-gradient(135deg,var(--fz-accent-glow,#FFCC00),var(--fz-accent,#f0a500))!important; color:#15120f!important; }

/* ===== Collapsed "Already got a quote?" button (default) → expands to small verify box ===== */
#gyl-fizza-root .fz-codepanel:has(.fz-cp-toggle){ padding:0!important; border:0!important; background:none!important; box-shadow:none!important; }
#gyl-fizza-root .fz-cp-toggle{ display:flex; align-items:center; gap:12px; width:100%; text-align:left; cursor:pointer;
  padding:13px 16px; border:1px solid var(--fz-line-2,rgba(255,255,255,.18)); border-radius:12px;
  background:var(--fz-card,rgba(255,255,255,.05)); transition:border-color .15s,box-shadow .15s,transform .15s; }
#gyl-fizza-root .fz-cp-toggle::before{ content:""; flex:none; width:32px; height:32px; border-radius:9px;
  background:var(--fz-gold-soft,rgba(240,164,74,.18)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f0a44a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='15.5' cy='8.5' r='4.5'/%3E%3Cpath d='M12.3 11.7 4 20l2 2'/%3E%3Cpath d='m7 17 2 2'/%3E%3C/svg%3E") center/17px no-repeat; }
#gyl-fizza-root .fz-cp-toggle .fz-cp-toggle-tx{ flex:1; }
#gyl-fizza-root .fz-cp-toggle .fz-cp-toggle-tx b{ display:block; font:700 14px Manrope,system-ui,sans-serif; color:var(--fz-ink,#f5f1e8); }
#gyl-fizza-root .fz-cp-toggle .fz-cp-toggle-tx small{ display:block; font-size:12px; color:var(--fz-muted,#8a847b); margin-top:1px; }
#gyl-fizza-root .fz-cp-toggle::after{ content:""; flex:none; width:8px; height:8px; margin-right:4px; border-right:2px solid var(--fz-muted,#8a847b); border-bottom:2px solid var(--fz-muted,#8a847b); transform:rotate(-45deg); }
#gyl-fizza-root .fz-cp-toggle:hover{ border-color:var(--fz-gold-line,rgba(240,164,74,.5)); transform:translateY(-1px); box-shadow:0 8px 22px -12px rgba(0,0,0,.3); }
#gyl-fizza-root.fz-theme-clean .fz-cp-toggle::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c6fd6' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='15.5' cy='8.5' r='4.5'/%3E%3Cpath d='M12.3 11.7 4 20l2 2'/%3E%3Cpath d='m7 17 2 2'/%3E%3C/svg%3E"); }
#gyl-fizza-root .fz-cp-back{ background:none; border:0; cursor:pointer; color:var(--fz-muted,#8a847b); font:700 12.5px Manrope,system-ui,sans-serif; padding:0 0 10px; }
#gyl-fizza-root .fz-cp-back:hover{ color:var(--fz-ink,#f5f1e8); }

/* ===== Make the 3 booking-mode cards the bigger, primary element ===== */
#gyl-fizza-root .fz-card{ padding:32px 22px 26px; border-radius:18px; }
#gyl-fizza-root .fz-icon-wrap{ width:66px; height:66px; margin-bottom:16px; }
#gyl-fizza-root .fz-icon-svg{ width:42px; height:42px; }
#gyl-fizza-root .fz-card h3{ font-size:23px; margin-bottom:8px; }
#gyl-fizza-root .fz-card .fz-blurb{ font-size:13px; margin-bottom:18px; }
#gyl-fizza-root .fz-chooser-grid{ gap:18px; }

/* ===== Clean theme — voice view text was light-grey (dark-theme colours) → make readable on white ===== */
#gyl-fizza-root.fz-theme-clean .fz-voice-greet{ color:var(--fz-ink)!important; }
#gyl-fizza-root.fz-theme-clean .fz-voice-greet span{ color:var(--fz-muted)!important; opacity:1!important; }
#gyl-fizza-root.fz-theme-clean .fz-mic-hint{ color:var(--fz-muted)!important; }
#gyl-fizza-root.fz-theme-clean .fz-vc-btn{ color:var(--fz-ink)!important; background:#fff!important; border-color:var(--fz-line-2)!important; }
#gyl-fizza-root.fz-theme-clean .fz-vc-btn:hover{ background:var(--fz-gold-soft)!important; border-color:var(--fz-gold-line)!important; color:var(--fz-navy)!important; }
#gyl-fizza-root.fz-theme-clean .fz-voice-state{ background:var(--fz-gold-soft)!important; border-color:var(--fz-gold-line)!important; color:var(--fz-navy)!important; }
#gyl-fizza-root.fz-theme-clean .fz-voice-state.is-thinking{ color:var(--fz-muted)!important; }
/* readability sweep — other dark-theme greys that were faint on white */
#gyl-fizza-root.fz-theme-clean .fz-status-strip{ color:var(--fz-ink)!important; }
#gyl-fizza-root.fz-theme-clean .fz-status-strip b{ color:var(--fz-navy)!important; }
#gyl-fizza-root.fz-theme-clean .fz-edit-text,#gyl-fizza-root.fz-theme-clean .fz-edit-text *{ color:var(--fz-muted)!important; }
#gyl-fizza-root.fz-theme-clean .fz-lang button{ color:var(--fz-muted)!important; }
#gyl-fizza-root.fz-theme-clean .fz-lang button.on{ color:#fff!important; }
/* sent (blue) bubbles: timestamp + CHANGE pill must read on blue, not dark/gold */
#gyl-fizza-root.fz-theme-clean .fz-msg.user .fz-msg-meta{ color:rgba(255,255,255,.72)!important; }
#gyl-fizza-root.fz-theme-clean .fz-msg.user .fz-edit-pill{ background:rgba(255,255,255,.18)!important; color:#fff!important; border-color:rgba(255,255,255,.42)!important; }
#gyl-fizza-root.fz-theme-clean .fz-msg.user .fz-edit-pill svg{ color:#fff!important; stroke:#fff!important; }
#gyl-fizza-root.fz-theme-clean .fz-msg.user .fz-edit-pill:hover{ background:rgba(255,255,255,.28)!important; }

/* ===== Combined compact header: greeter + Google rating on row 1, live status as slim row 2 — one card ===== */
#gyl-fizza-root .fz-hero{ display:flex!important; flex-wrap:wrap; align-items:center; gap:10px 16px;
  background:var(--fz-card,#fff)!important; border:1px solid var(--fz-line,rgba(255,255,255,.08))!important; border-radius:16px;
  padding:13px 18px!important; margin:0 0 16px!important; box-shadow:0 1px 2px rgba(20,30,50,.04),0 10px 30px -18px rgba(20,30,50,.2); }
#gyl-fizza-root .fz-hero .fz-greeter{ order:1; flex:1 1 240px; margin:0!important; padding:0!important; background:none!important; border:0!important; box-shadow:none!important; width:auto!important; justify-content:flex-start!important; gap:12px!important; }
#gyl-fizza-root .fz-hero .fz-greeter-av,#gyl-fizza-root .fz-hero .fz-greeter-av .fz-av-img{ width:46px!important; height:46px!important; }
#gyl-fizza-root .fz-hero .fz-greeter-txt h3{ font-size:17px; }
#gyl-fizza-root .fz-hero .fz-greview{ order:2; margin:0!important; flex:0 0 auto; background:none!important; border:0!important; padding:0!important; box-shadow:none!important; }
#gyl-fizza-root .fz-hero .fz-statbar{ order:3; flex-basis:100%; width:100%; margin:0!important; border:0!important; background:none!important;
  border-top:1px solid var(--fz-line,rgba(0,0,0,.08))!important; padding:11px 0 0!important; border-radius:0!important; display:flex; flex-wrap:wrap; gap:5px 6px; justify-content:flex-start; overflow:visible; box-shadow:none!important; }
#gyl-fizza-root .fz-hero .fz-statbar .fz-chip{ padding:4px 10px!important; border:0!important; border-radius:8px!important; background:transparent!important; font-size:11.5px!important; gap:6px!important; }
#gyl-fizza-root .fz-hero .fz-statbar .fz-chip svg{ width:14px; height:14px; }

/* ============================================================================
   COMPACT "SOPHIE BOX" — clean theme only. A slim card: one-line avatar header,
   3-tab segmented control (Chat · Voice · Quote), then the tab body. Matches the
   approved taxi-hero-box-plan.html: black + gold + white, cream fields.
   Gated entirely behind .fz-theme-clean so London/Chauffeur/Niagara are untouched.
   ============================================================================ */
#gyl-fizza-root.fz-theme-clean.fz-compact{ max-width:380px; margin:0 auto; }
/* the big 3-card chooser + its mobile tabs are replaced by the segmented control (COMPACT only —
   reservation keeps its chooser cards + bottom bar) */
#gyl-fizza-root.fz-theme-clean.fz-compact #fz-chooser-grid,
#gyl-fizza-root.fz-theme-clean.fz-compact #fz-chooser-tabs,
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-bottom-bar{ display:none!important; }

/* one-line avatar header */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-sh{ display:flex; align-items:center; gap:10px; margin:0 0 12px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-sh-img,
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-sh-ill{ width:38px; height:38px; border-radius:50%; object-fit:cover; flex:none; border:1.5px solid var(--fz-gold-line); display:inline-flex; overflow:hidden; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-sh-ill svg,
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-sh-ill img{ width:100%; height:100%; object-fit:cover; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-sh-meta b{ display:block; font:600 14.5px Manrope,system-ui,sans-serif; color:#15120f; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-sh-meta small{ display:block; font-size:11.5px; color:#0c6b30; font-weight:600; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-dot{ width:7px; height:7px; border-radius:50%; background:#1a9d5a; display:inline-block; margin-right:4px; vertical-align:middle; }

/* segmented control — single line, equal thirds */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-seg{ display:grid; grid-template-columns:repeat(3,1fr); gap:4px; background:var(--fz-card-2); border:1px solid var(--fz-line); border-radius:12px; padding:4px; margin:0 0 14px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-seg-btn{ display:flex; align-items:center; justify-content:center; gap:6px; min-height:38px; border:0; border-radius:9px; background:transparent; color:var(--fz-muted); font:700 13px Manrope,system-ui,sans-serif; cursor:pointer; white-space:nowrap; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-seg-btn svg{ width:15px; height:15px; flex:none; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-seg-btn.on{ background:#fff; color:var(--fz-gold); box-shadow:0 1px 3px rgba(20,30,50,.12); }

/* keep the box a fixed height so swapping tabs never reflows */
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-panel.is-active{ min-height:300px; }

/* Quote tab — 5-field form (Pickup · Drop-off · Date&time · Phone+Email) */
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-panel.fzc-quote-panel{ background:none; border:0; box-shadow:none; padding:0; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-quote{ display:flex; flex-direction:column; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-fld{ position:relative; margin:0 0 10px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-fld svg{ position:absolute; left:13px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--fz-gold); pointer-events:none; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-fld input{ width:100%; min-height:46px; padding:12px 14px 12px 39px; border:1px solid var(--fz-line); border-radius:11px; background:var(--fz-card-2); color:var(--fz-ink); font:500 14px Manrope,system-ui,sans-serif; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-fld input:focus{ outline:none; border-color:var(--fz-gold-line); box-shadow:0 0 0 3px rgba(255,204,0,.18); }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-fld input::placeholder{ color:#93897a; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-fld.is-invalid input{ border-color:#d11f33; box-shadow:0 0 0 3px rgba(209,31,51,.12); }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-two{ display:grid; grid-template-columns:1fr 1fr; gap:9px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-two .fzc-fld{ margin:0 0 10px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-go{ width:100%; min-height:50px; margin-top:6px; border:0; border-radius:11px; cursor:pointer; color:#15120f; font:800 15px Manrope,system-ui,sans-serif; background:linear-gradient(135deg,#FFCC00,#f0a500); box-shadow:0 14px 30px -14px rgba(240,165,0,.55); display:flex; align-items:center; justify-content:center; gap:8px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-go[disabled]{ opacity:.7; cursor:default; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-go svg{ width:18px; height:18px; color:#15120f; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-note{ display:flex; align-items:center; gap:7px; justify-content:center; margin:11px 2px 0; font-size:11px; color:var(--fz-muted); }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-note svg{ width:13px; height:13px; color:#1a9d5a; flex:none; }

/* Quote success state */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-quote-done[hidden]{ display:none!important; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-quote-done{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:10px; min-height:280px; padding:10px 0; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-quote-done .fzc-done-ico{ width:60px; height:60px; border-radius:50%; background:rgba(26,157,90,.12); display:flex; align-items:center; justify-content:center; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-quote-done .fzc-done-ico svg{ width:30px; height:30px; color:#1a9d5a; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-quote-done b{ font:600 18px Manrope,system-ui,sans-serif; color:#15120f; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-quote-done p{ margin:0; font-size:13px; color:var(--fz-muted); }

/* ============================================================================
   CLEAN THEME — compact box: strip the inner chrome the mockup doesn't have, and
   restyle the Chat + Voice panels to the approved compact Sophie box. All scoped
   to .fz-theme-clean so London/Chauffeur/Niagara stay exactly as they are.
   ============================================================================ */
/* The widget is a card already (white surface from the .qq mockup) — give the root
   the mockup's card chrome and let panels flow inside it (no 640px tall sub-card). */
#gyl-fizza-root.fz-theme-clean.fz-compact{ max-width:360px!important; background:#fff!important; border-radius:18px; padding:16px 18px 18px;
  box-shadow:0 2px 4px rgba(8,15,30,.10),0 30px 60px -28px rgba(8,15,30,.6); }
/* Hide every panel's inner header bar, the "Already booked … Manage" row, the EN/FR
   toggle, the chat mic button, and the bottom tab bar — none are in the COMPACT mockup.
   Reservation (clean but NOT compact) KEEPS all of these. */
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-panel-head,
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-edit-banner,
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-lang,
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-input-wrap [data-action="mic"]{ display:none!important; }
/* Panels: no dark sub-card, no fixed height — flow at the box's natural compact size. */
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-panel{ background:none!important; border:0!important; box-shadow:none!important;
  border-radius:0!important; height:auto!important; max-height:none!important; padding:0!important; overflow:visible!important; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-panel.is-active{ display:flex!important; flex-direction:column; min-height:300px; }

/* ── Clean Chat panel (greeting bubble + example chips + free-text bar) ── */
#gyl-fizza-root.fz-theme-clean.fz-compact #fz-panel-chat{ display:none; }
#gyl-fizza-root.fz-theme-clean.fz-compact #fz-panel-chat.is-active{ display:flex!important; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-thread{ flex:1; min-height:0; max-height:none; padding:0; gap:10px; overflow-y:auto; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-bub{ background:var(--fz-card-2); border:1px solid var(--fz-line);
  border-radius:14px 14px 14px 4px; padding:11px 13px; font:500 13.5px/1.45 Manrope,system-ui,sans-serif; color:#16130d; margin:0; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-examples{ display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 0; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-ex{ font:600 11.5px Manrope,system-ui,sans-serif; color:#6f5200;
  background:transparent; border:1px solid var(--fz-gold-line); border-radius:999px; padding:5px 14px; cursor:pointer;
  /* v0.49.96 — comfortable ≥44px tap target (was 25px tall) without distorting the pill: */
  display:inline-flex; align-items:center; min-height:44px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-ex:hover{ background:var(--fz-gold-soft); }
/* v0.49.69 — WCAG AA contrast: gold text on the near-white compact card measured <4.5:1.
   Darken the active tab + any small gold/muted text so they read on light. */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-seg-btn.on{ color:#6f5200; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-seg-btn{ color:#5a5650; }
#gyl-fizza-root.fz-theme-clean.fz-compact small{ color:#5b5347; }
/* the real chat bubbles still render below the opening once the rider sends */
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-msg{ max-width:88%; }
/* free-text bar = mockup chatbar: cream input + square gold send */
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-input-wrap{ padding:12px 0 0; gap:8px; border-top:0; background:none!important; margin-top:4px; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-input{ flex:1; min-height:46px; padding:12px 14px; border:1px solid var(--fz-line);
  border-radius:11px; background:var(--fz-card-2); color:#16130d; font:500 14px Manrope,system-ui,sans-serif; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-input:focus{ border-color:var(--fz-gold-line); box-shadow:0 0 0 3px rgba(255,204,0,.18); }
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-input::placeholder{ color:#93897a; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-icon-btn.send{ width:46px; height:46px; border-radius:11px; flex:none;
  background:linear-gradient(135deg,#FFCC00,#f0a500)!important; border:0!important; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-icon-btn.send svg{ width:18px; height:18px; color:#15120f!important; stroke:#15120f!important; }
/* footer reassurance line under the chat bar */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-chat-note{ display:flex; align-items:center; gap:7px; justify-content:center;
  margin:11px 2px 0; font-size:11px; color:var(--fz-muted); }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-chat-note svg{ width:13px; height:13px; color:#1a9d5a; flex:none; }

/* ── Clean Voice panel (single gold mic + two lines) ── */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-voice{ flex:1; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; gap:14px; padding:10px 0; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-mic{ position:relative; width:96px!important; height:96px!important; border-radius:50%!important; border:0!important; cursor:pointer;
  background:linear-gradient(135deg,#FFCC00,#f0a500)!important; display:flex!important; align-items:center; justify-content:center;
  box-shadow:0 18px 40px -16px rgba(240,165,0,.6), 0 0 0 10px rgba(255,204,0,.12)!important; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-mic:hover{ transform:translateY(-1px); }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-mic svg{ width:40px!important; height:40px!important; color:#15120f!important; stroke:#15120f!important; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-voice-h{ font:600 17px "Cormorant Garamond",Georgia,serif; color:#15120f; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-voice-p{ margin:0; font-size:12.5px; color:var(--fz-muted); max-width:240px; }
/* keep the JS voice hooks but out of the way until a tap starts the conversation */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-voice .fz-voice-state,
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-voice-controls{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-voice .fz-voice-convo:empty{ display:none; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-voice .fz-voice-convo{ width:100%; }

/* ============================================================
   Reservation header compaction (taxi clean, non-compact only)
   — greeter + Google rating + live dispatch chips in ONE band
   — "Already got a quote?" collapsed to a small button
   — the 3 choice cards a little larger
   Scoped to :not(.fz-compact) so the hero quote box is untouched.
   ============================================================ */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px;
  padding:16px 18px; margin:0 0 16px;
  background:var(--fz-card-2,#faf8f2);
  border:1px solid var(--fz-line,rgba(20,18,12,.12)); border-radius:14px;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{
  display:flex!important; align-items:center; gap:10px; margin:0!important; padding:0!important;
  background:none!important; border:0!important; box-shadow:none!important; border-radius:0!important;
}
/* round photo avatar (was rendering square → looked like a dark blob) */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av{ width:40px; height:40px; flex:none; position:relative; border-radius:50%; overflow:visible; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av svg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av img{
  width:40px!important; height:40px!important; object-fit:cover; border-radius:50%!important; display:block;
  box-shadow:0 0 0 2px var(--fz-gold-line,rgba(154,116,0,.45));
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-dot{ position:absolute; right:0; bottom:0; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt h3{ font-size:15px; line-height:1.15; margin:0; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt p{ font-size:11.5px; line-height:1.15; margin:1px 0 0; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{ margin:0!important; padding:7px 16px!important; gap:10px!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview .fz-g,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview img{ margin-left:0!important; flex:0 0 auto; }
/* keep the dispatch chips on the SAME line (flow inline; wrap only when out of room) */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-status-strip{ flex:1 1 auto; min-width:0; margin:0; padding:0; background:none; border:0; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-statbar{ display:flex; flex-wrap:wrap; gap:6px; margin:0; justify-content:flex-end; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-chip{ font-size:10.5px; padding:4px 8px; }
@media(max-width:920px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-status-strip{ flex:1 1 100%; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-statbar{ justify-content:flex-start; }
}

/* "Already got a quote?" — compact button, not a full-width row */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-cp-toggle{
  display:inline-flex; align-items:center; gap:8px; width:auto; max-width:100%;
  padding:8px 14px; margin:0 0 12px; border-radius:10px; text-align:left;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-cp-toggle .fz-cp-toggle-tx{ display:flex; align-items:baseline; gap:8px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-cp-toggle .fz-cp-toggle-tx b{ font-size:13.5px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-cp-toggle .fz-cp-toggle-tx small{ font-size:11.5px; opacity:.75; }

/* 3 choice cards — a little bigger */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-chooser-grid .fz-card{ padding:28px 20px; min-height:248px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-chooser-grid .fz-card h3{ font-size:21px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-chooser-grid .fz-card .fz-blurb{ font-size:14px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-chooser-grid .fz-card .fz-icon-svg{ width:36px; height:36px; }
@media(max-width:640px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-chooser-grid .fz-card{ min-height:0; padding:20px 16px; }
}

/* ============================================================
   Reservation MOBILE polish (≤760px) — taxi clean, non-compact.
   Fixes: giant EN/FR toggle, leftover "Read more", collapsed
   chips, oversized RECOMMENDED badge, cards touching.
   ============================================================ */
@media(max-width:920px){
  /* EN/FR toggle was 160x74 — scale it down to a real pill, kept in the corner */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{
    transform:scale(.52); transform-origin:top right; top:8px!important; right:8px!important; z-index:3;
  }
  /* kill the leftover "Read more ▾" (base CSS was overriding the hidden attr) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-hdr-toggle{ display:none!important; }
  /* header band: a touch more top room so the greeter clears the toggle */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{ padding:16px 14px 14px; gap:10px 12px; }
  /* greeter slightly smaller, never under the toggle */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{ max-width:78%; }
  /* show ALL dispatch chips (base mobile hid 2–4 behind Read more), small + wrapping */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-status-strip{ flex:1 1 100%!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-statbar{ justify-content:flex-start; gap:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-statbar .fz-chip{ display:inline-flex!important; font-size:10px; padding:3px 8px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{ font-size:12px; }
  /* cards: real spacing so they don't touch */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-chooser-grid{ gap:16px!important; }
  /* RECOMMENDED badge: smaller + fully inside the card */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-card .fz-badge{
    font-size:9.5px!important; letter-spacing:.06em!important; padding:4px 10px!important; top:10px!important; right:10px!important; left:auto!important;
  }
}

/* ============================================================
   Reservation chat input bar — make the mic VISIBLE (was cream
   on a light field), keep the send button clear of the panel's
   rounded corner, and kill the big empty gap before the bar.
   ============================================================ */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap [data-action="mic"]{
  color:#9a7400!important; background:var(--fz-card-2,#f4efe4)!important; border:1px solid var(--fz-line,rgba(20,18,12,.14))!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap [data-action="mic"] svg{ color:#9a7400!important; stroke:#9a7400!important; }
@media(max-width:920px){
  /* send button clears the rounded bottom-right corner; comfortable bar padding */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat{ padding-bottom:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap{ padding:12px 14px 14px; gap:8px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-icon-btn{ width:42px; height:42px; }
  /* no giant empty thread before the input on a phone */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat.is-active{ min-height:auto!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-thread{ min-height:130px; max-height:46vh; }
}

/* ============================================================
   Reservation chat SEND button — was a black box with a dark
   (invisible) arrow. Make it GOLD with a dark arrow so the
   send icon is clearly visible (matches the approved quote box).
   ============================================================ */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn.send{
  background:linear-gradient(135deg,#FFCC00,#f0a500)!important; border:0!important; box-shadow:0 8px 18px -8px rgba(240,165,0,.55)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn.send svg{
  color:#15120f!important; stroke:#15120f!important; fill:none!important; opacity:1!important; width:20px!important; height:20px!important;
}

/* ============================================================
   Reservation header v2 (Wali): drop the live-dispatch chips row,
   put greeter + Google rating on ONE line with the rating pushed
   to the RIGHT, and remove the standalone "Already got a quote?"
   panel (the in-chat "Manage" row is the single entry point).
   ============================================================ */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{
  display:flex!important; flex-wrap:wrap; align-items:center; gap:10px 14px; padding:14px 18px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{ flex:0 1 auto; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{ margin-left:auto!important; flex:0 0 auto; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-status-strip{ display:none!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-codepanel{ display:none!important; }

/* Reservation: the Google rating must STAY visible (base hides it unless header "open"),
   pinned to the right of the greeter on one line. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{ display:inline-flex!important; margin-left:auto!important; }

/* Keep greeter + Google rating on ONE row on mobile (rating stays right, greeter shrinks) */
@media(max-width:600px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{ flex-wrap:nowrap!important; align-items:center; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{ flex:1 1 auto; min-width:0; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt{ min-width:0; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{ flex:0 0 auto; padding:5px 10px!important; }
}

/* ============================================================
   Reservation MOBILE = Mockup #1 "Segmented tabs" (Wali pick).
   On phones: hide the 3 big chooser cards, show a vibrant
   gold/cream segmented Chat·Voice·Form control with Chat active
   by default, one panel below. Desktop keeps the 3-card layout.
   ============================================================ */
@media(max-width:920px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid{ display:none!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs{
    display:flex!important; gap:3px; background:#faf7ee; border:1px solid rgba(20,18,12,.12);
    border-radius:13px; padding:4px; margin:0 0 14px;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab{
    flex:1; display:flex; align-items:center; justify-content:center; gap:6px; height:40px; min-height:40px;
    border:0; border-radius:10px; background:transparent; cursor:pointer; white-space:nowrap;
    font:700 12.5px/1 "Sora","Manrope",system-ui,sans-serif; color:#6b6256; letter-spacing:0;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab svg{ width:15px; height:15px; flex:none; }
  /* active tab = vibrant gold */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active{
    background:linear-gradient(135deg,#FFCC00,#f0a500); color:#15120f; box-shadow:0 2px 6px -1px rgba(240,165,0,.5);
  }
  /* default (nothing picked yet) → Chat tab reads as active + Chat panel shows */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs:not(:has(.fz-tab.active)) .fz-tab[data-tab="chat"]{
    background:linear-gradient(135deg,#FFCC00,#f0a500); color:#15120f; box-shadow:0 2px 6px -1px rgba(240,165,0,.5);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact):not(:has(.fz-panel.is-active)) #fz-panel-chat{
    display:flex!important; flex-direction:column;
  }
}

/* ============================================================
   Contrast fix (axe serious): the italic gold accent words and
   the "Online now" green were too light on white. Darken the
   TEXT to readable tones (≥4.5:1). Vibrant #FFCC00 stays on the
   gold button/tab FILLS (dark text on gold = high contrast).
   ============================================================ */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-greeter-txt h3 em,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-card h3 em,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-msg.agent em,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-voice-bubble em{ color:#8a6700!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-greeter-txt p b{ color:#157a3a!important; }

/* Contrast pass 2: RECOMMENDED badge = gold fill + dark text; inactive EN/FR label readable */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-card .fz-badge{ background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang button{ color:#2e2a23!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang button.on{ color:#15120f!important; }

/* ============================================================
   DESKTOP "Two-column split" reservation layout (Wali pick).
   Scope: ONLY the reservation widget = .fz-theme-clean:not(.fz-compact),
   and ONLY ≥761px. The ≤760px segmented-tab mobile layout above is
   left completely untouched — nothing in this block applies there.
   LEFT  (col 1) = dark brand panel (.fz-rsv-head, spans all rows).
   RIGHT (col 2) = white booking panel (rhead + chooser rows + tabs
   + every .fz-panel). The split elements (.fz-rsv-tag / .fz-rsv-trust /
   .fz-rsv-rhead) are display:none on mobile so the phone view is intact.
   ============================================================ */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-tag,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead{ display:none; }

@media(min-width:921px){
  /* ---- root becomes the 2-column grid frame ---- */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact){
    position:relative!important; display:block!important; padding:0 0 0 380px!important; min-height:560px;
    max-width:980px; margin:0 auto; background:#ffffff;
    border:1px solid rgba(20,18,12,.12); border-radius:22px; overflow:hidden;
    box-shadow:0 40px 90px -50px rgba(20,18,12,.45);
  }

  /* ---- LEFT: dark brand panel (spans full height) ---- */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{
    position:absolute; left:0; top:0; bottom:0; width:380px;
    display:flex!important; flex-direction:column; align-items:flex-start; flex-wrap:nowrap!important;
    gap:18px; padding:38px 34px!important; margin:0!important; overflow:hidden;
    background:#15120f!important; border:0!important; border-radius:0!important; color:#fff;
  }
  /* greeter — round gold-ringed avatar + serif gold "Sophie" + green online dot.
     BUG 2: base .fz-greeter sets justify-content:center, which leaked here and left the
     avatar+text floating mid-column. Force flush-left (justify-content:flex-start, full width,
     no auto side margins) and tighten the avatar→text gap so it sits at the panel's left padding. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{
    flex:0 0 auto!important; display:flex!important; align-items:center;
    justify-content:flex-start!important; gap:11px; margin:0!important;
    width:100%; max-width:100%; padding:0!important; text-align:left;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt{ text-align:left; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av{ width:58px; height:58px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av svg,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av img{
    width:58px!important; height:58px!important; box-shadow:0 0 0 2px #FFCC00!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av svg{ background:#211b12; padding:7px; color:#FFCC00; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt h3{
    font-family:"Fraunces","Georgia",serif; font-weight:500; font-size:20px; color:#fff; margin:0;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt h3 em{ font-style:italic; color:#FFCC00!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt p{
    font-size:12px; line-height:1.3; margin:3px 0 0; color:rgba(255,255,255,.72);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt p b{ color:#157a3a!important; font-weight:600; }

  /* tagline */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-tag{
    display:block; margin:0; font:600 22px/1.32 "Fraunces","Georgia",serif; color:#fff; letter-spacing:-.01em; max-width:18ch;
  }

  /* push trust + reviews to the bottom */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-status-strip{ display:none!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust{
    display:flex; flex-direction:column; gap:13px; list-style:none; margin:auto 0 0; padding:0; width:100%;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust li{
    display:flex; align-items:center; gap:11px; font:500 13px/1.35 "Manrope",system-ui,sans-serif; color:rgba(255,255,255,.86);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust-ic{
    flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center;
    border-radius:9px; background:rgba(255,204,0,.12); border:1px solid rgba(255,204,0,.28); color:#FFCC00;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust-ic svg{ width:17px; height:17px; }
  /* reviews pill stays a white pill (unchanged), placed under the trust list */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{
    display:inline-flex!important; margin:2px 0 0!important; align-self:flex-start;
  }

  /* ---- RIGHT: white booking panel (col 2) ---- */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead{ display:block; margin:0; padding:34px 40px 0; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid{ padding:18px 40px 34px!important; margin:0!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs{ padding:0 40px 16px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-edit{ padding-left:40px!important; padding-right:40px!important; padding-bottom:30px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-hdr-toggle{ display:none!important; }

  /* right-column heading + EN/FR toggle on one line */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead-h{
    margin:0; font:700 18px/1.2 "Manrope",system-ui,sans-serif; color:#15120f; padding-right:74px;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead-p{
    margin:5px 0 0; font:400 13px/1.4 "Manrope",system-ui,sans-serif; color:#6b6256;
  }
  /* BUG 3: EN/FR toggle pinned cleanly to the TOP-RIGHT corner of the white right column.
     The toggle is absolute vs. the root (which spans both columns), so right:18px lands it at
     the panel's right edge; top:18px sits it above the right-head + segmented control with clear
     breathing room. A soft cream pill + hairline border makes it read as a deliberate control,
     not something jammed mid-header. (Mobile keeps its own scaled-down placement below.) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{
    top:18px!important; right:18px!important; z-index:40;
    padding:3px; border-radius:10px; gap:2px;
    background:#faf7ee; border:1px solid rgba(20,18,12,.12);
    box-shadow:0 6px 16px -12px rgba(20,18,12,.4);
  }
  /* keep the right-head clear of the toggle so the heading never runs under it */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead{ padding-top:30px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead-h{ padding-right:84px; }

  /* ---- chooser cards → slim ROWS in the right column ---- */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid{
    display:flex!important; flex-direction:column; gap:12px;
    max-width:none; margin:0; padding:18px 38px 34px;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card{
    display:grid!important; grid-template-columns:auto 1fr auto; align-items:center; gap:16px;
    width:100%; min-height:0!important; padding:16px 18px!important; text-align:left;
    background:#fff!important; border:1px solid rgba(20,18,12,.12)!important; border-radius:14px!important;
    box-shadow:none!important; transition:border-color .2s, box-shadow .2s, transform .2s;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card:hover{
    transform:none; border-color:rgba(154,116,0,.4)!important; box-shadow:0 14px 30px -20px rgba(20,18,12,.3)!important;
  }
  /* icon cell (left) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-icon-wrap{
    grid-row:1 / span 2; grid-column:1; width:44px; height:44px; margin:0;
    border-radius:11px; background:#faf7ee; border:1px solid rgba(20,18,12,.1);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-icon-glow{ display:none!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card .fz-icon-svg{ width:22px!important; height:22px!important; color:#8a6700!important; }
  /* title + meta (middle) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card h3{
    grid-column:2; grid-row:1; align-self:end; margin:0!important; font:600 16px/1.15 "Manrope",system-ui,sans-serif!important; color:#15120f!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card h3 em{ font-style:normal; color:#15120f!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card .fz-blurb{
    grid-column:2; grid-row:2; align-self:start; margin:2px 0 0!important; font-size:12.5px!important; line-height:1.4; color:#6b6256!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card .fz-meta{ display:none!important; }
  /* button (right) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card .fz-pick{
    grid-row:1 / span 2; grid-column:3; width:auto; align-self:center; white-space:nowrap;
    padding:0 18px; min-height:46px; display:inline-flex; align-items:center; border-radius:11px;
    font-size:12px; letter-spacing:.04em; background:#faf7ee; color:#15120f;
    border:1px solid rgba(20,18,12,.14); box-shadow:none;
  }
  /* Voice row = highlighted "Recommended" */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured{
    background:#fffdf3!important; border-color:rgba(255,204,0,.55)!important; box-shadow:0 10px 28px -18px rgba(240,165,0,.4)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured .fz-icon-wrap{
    background:radial-gradient(circle at 50% 30%, rgba(255,204,0,.3), rgba(255,204,0,.06) 72%)!important; border-color:rgba(255,204,0,.5)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured .fz-pick{
    background:linear-gradient(135deg,var(--fz-accent-glow,#FFCC00),var(--fz-accent,#f0a500)); color:#15120f; border-color:transparent;
    box-shadow:0 10px 22px -10px rgba(240,165,0,.6);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured .fz-badge{
    position:static; grid-row:1; grid-column:2; justify-self:start; align-self:end; margin:0 0 2px;
    font-size:9px!important; letter-spacing:.08em; padding:3px 9px!important; order:-1;
  }
  /* badge sits above the title on the featured row */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured{ grid-template-rows:auto auto auto; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured .fz-icon-wrap{ grid-row:1 / span 3; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured h3{ grid-row:2; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured .fz-blurb{ grid-row:3; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card.featured .fz-pick{ grid-row:1 / span 3; }

  /* tabs (after a mode is chosen) live in the right column */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs{ margin:0; padding:18px 38px 8px; }

  /* opened panel sits in the white right column, not full-bleed */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel{
    max-width:none; margin:0 38px 34px; height:auto; min-height:420px; max-height:560px;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-edit{ margin:0 38px 34px; }
  /* once a panel is active, collapse the right-head + chooser so the panel owns the column */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact):has(.fz-panel.is-active) .fz-rsv-rhead,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact):has(.fz-panel.is-active) #fz-chooser-grid{ display:none!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact):has(.fz-panel.is-active) .fz-panel{ margin-top:18px; }
}

/* Desktop split: greeter sub-text must be light on the dark left panel (axe contrast fix) */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt p{ color:rgba(255,255,255,.74)!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt p b{ color:#157a3a!important; }
}

/* ============================================================
   v0.49.14 — Live "Trip Detail" panel + Chat/Voice/Form segmented
   control polish + chat input-bar polish.  EVERYTHING here is scoped to
   the RESERVATION widget = #gyl-fizza-root.fz-theme-clean:not(.fz-compact)
   so the compact hero quote box (.fz-compact), the dark default theme
   (London/Chauffeur/Niagara), and mobile segmented tabs are untouched.
   ============================================================ */

/* ---- PHASE 2: Trip-Detail panel base (hidden until a flow is live) ---- */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel{ display:none; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel{ display:block; }

#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-head{
  display:flex; align-items:center; gap:9px; margin:0 0 12px;
  font:600 11px/1 "Manrope",system-ui,sans-serif; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.62);
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-head-ic{
  display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; flex:none;
  border-radius:7px; background:rgba(255,204,0,.12); border:1px solid rgba(255,204,0,.28); color:#FFCC00;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-head-ic svg{ width:14px; height:14px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-rows{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-row{
  display:grid; grid-template-columns:22px minmax(72px,auto) 1fr; align-items:center; gap:10px;
  padding:7px 8px; border-radius:9px; transition:background .35s ease;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-ic{
  display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; flex:none; color:rgba(255,204,0,.85);
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-ic svg{ width:16px; height:16px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-label{
  font:500 11px/1.2 "Manrope",system-ui,sans-serif; letter-spacing:.02em; color:rgba(255,255,255,.6); white-space:nowrap;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-val{
  font:600 13px/1.3 "Manrope",system-ui,sans-serif; color:#fff; text-align:right; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-val.is-empty{ color:rgba(255,255,255,.34); font-weight:500; }
/* gold pulse on the row that just changed */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-row.is-pulse{ animation:fzTpPulse 1.1s ease; }
@keyframes fzTpPulse{
  0%{ background:rgba(255,204,0,.28); } 30%{ background:rgba(255,204,0,.22); } 100%{ background:transparent; }
}
/* return sub-group */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-return{
  margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.12);
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-return-h{
  display:flex; align-items:center; gap:8px; margin:0 0 6px;
  font:600 10.5px/1 "Manrope",system-ui,sans-serif; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.58);
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-return-h .fz-tp-ic{ width:18px; height:18px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-return-h .fz-tp-ic svg{ width:14px; height:14px; }
@media(prefers-reduced-motion:reduce){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-row.is-pulse{ animation:none!important; }
}

/* ---- PHASE 3 (desktop ≥761): swap marketing ↔ trip detail in the dark left column ---- */
@media(min-width:921px){
  /* tagline + reviews step aside the moment a booking flow is live; greeter + trust stay */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-rsv-tag,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-rsv-head .fz-greview{ display:none!important; }
  /* trip panel takes the mid/bottom space; trust list slides under it, reviews gone.
     BUG 4: a round trip can run 11 rows + headers and overflow the dark column. Bound the
     panel to the available column height and let it scroll, with a thin light scrollbar that
     matches the chat input's treatment. min-height:0 lets it shrink inside the flex column. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel{
    width:100%; margin:6px 0 0; min-height:0; flex:1 1 auto;
    max-height:calc(100vh - 320px); overflow-y:auto; overflow-x:hidden;
    scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.28) transparent;
    -webkit-overflow-scrolling:touch;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel::-webkit-scrollbar{ width:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.28); border-radius:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel::-webkit-scrollbar-track{ background:transparent; }
  /* keep the "Your trip so far" heading visible while the rows scroll under it */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel .fz-tp-head{
    position:sticky; top:0; z-index:1; margin:0 0 12px; padding-bottom:6px; background:#15120f;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-rsv-trust{ margin-top:18px; }
  /* dim the trust list slightly so the live trip is the focus */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-rsv-trust li{ color:rgba(255,255,255,.6); }
}

/* ---- PHASE 3 (mobile ≤760): compact summary strip ABOVE the active panel ----
   No left column on mobile; the .fz-rsv-head sits at the top, so we render the
   trip panel as a slim cream strip. Segmented tabs are left fully intact. */
@media(max-width:920px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel{
    background:#15120f; border:1px solid rgba(20,18,12,.12); border-radius:13px;
    padding:12px 14px; margin:0 0 12px;
    /* BUG 4 (mobile): keep the compact strip bounded so a long round trip can't run off-screen */
    max-height:42vh; overflow-y:auto; overflow-x:hidden;
    scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.28) transparent;
    -webkit-overflow-scrolling:touch;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel::-webkit-scrollbar{ width:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.28); border-radius:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-rows{ gap:0; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-row{ padding:5px 4px; grid-template-columns:20px minmax(64px,auto) 1fr; gap:8px; }
  /* mobile: hide rows that are still empty to keep the strip short */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-row:has(.fz-tp-val.is-empty){ display:none; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-val{ font-size:12.5px; }
}

/* ---- PHASE 5: DESKTOP Chat/Voice/Form = tight segmented control ----
   The .fz-chooser-tabs row (shown after a mode is picked) was loose + misaligned
   on desktop. Make it an even 3-segment control: equal widths, ~44px tall, the
   active segment filled gold with dark text, icon+label centred. (≥761 only —
   the ≤760 mobile segmented-tab styling above is untouched.) */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active{
    display:flex!important; gap:4px; justify-content:stretch; align-items:stretch;
    background:#faf7ee; border:1px solid rgba(20,18,12,.12); border-radius:13px; padding:4px;
    margin:0 38px 4px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab{
    flex:1 1 0; display:inline-flex; align-items:center; justify-content:center; gap:8px;
    height:44px; min-height:44px; padding:0 12px; border:0; border-radius:10px; background:transparent;
    cursor:pointer; white-space:nowrap; color:#6b6256;
    font:700 13px/1 "Sora","Manrope",system-ui,sans-serif; letter-spacing:.01em; transition:background .18s, color .18s;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab svg{ width:16px; height:16px; flex:none; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab:hover{ color:#15120f; background:rgba(255,204,0,.12); }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active{
    background:linear-gradient(135deg,#FFCC00,#f0a500); color:#15120f;
    box-shadow:0 2px 7px -1px rgba(240,165,0,.5);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active svg{ color:#15120f; }
}

/* ---- PHASE 6: chat input bar polish (auto-grow textarea, no ugly scrollbar,
   tidy mic + gold send buttons). Scoped to the reservation chat panel. ---- */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap{
  align-items:flex-end; gap:10px; padding:14px 18px 16px;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input{
  /* FIX 3 — the placeholder "Type your reply, or tap the mic to speak…" wraps to TWO lines
     in this field; min-height:44px + overflow clipped "speak…" off the bottom edge.
     Give it room for two lines so nothing is ever cut (mobile 390px + desktop), then auto-grow
     up to ~4 lines before scrolling. */
  flex:1 1 auto; min-height:52px; max-height:112px;
  padding:11px 16px; border-radius:14px; line-height:1.5; font-size:14px;
  background:#faf7ee!important; border:1px solid rgba(20,18,12,.14)!important; color:#15120f!important;
  resize:none; overflow-y:auto; scrollbar-width:thin; scrollbar-color:rgba(20,18,12,.25) transparent;
}
/* keep the mic + gold send buttons aligned to the (now taller) field */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap{ align-items:flex-end; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input::placeholder{ color:#8a8478!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input:focus{
  border-color:rgba(154,116,0,.55)!important; background:#fff!important;
  box-shadow:0 0 0 3px rgba(255,204,0,.16);
}
/* thin / hidden scrollbar (WebKit) */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input::-webkit-scrollbar{ width:6px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input::-webkit-scrollbar-thumb{ background:rgba(20,18,12,.22); border-radius:6px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input::-webkit-scrollbar-track{ background:transparent; }
/* mic + send buttons: consistent round 44px, aligned to the input baseline */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn{
  flex:none; width:44px; height:44px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap [data-action="mic"]{
  background:#faf7ee!important; border:1px solid rgba(20,18,12,.14)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap [data-action="mic"]:hover{
  background:rgba(255,204,0,.14)!important; border-color:rgba(154,116,0,.4)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn.send{
  background:linear-gradient(135deg,#FFCC00,#f0a500)!important; border:0!important;
  box-shadow:0 6px 16px -8px rgba(240,165,0,.7);
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn.send svg{ width:18px; height:18px; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn.send:hover{
  box-shadow:0 10px 22px -8px rgba(240,165,0,.8);
}

/* ============================================================
   v0.49.19 FIX 2 — Voice tab: the big "Hold to talk" circle is a
   dark navy button (.fz-theme-light .fz-mic-button → --fz-navy), but
   the mic glyph inherited the base dark color (var(--fz-graphite))
   → invisible (dark-on-dark). Force the icon WHITE on the dark
   circle, idle + pressed/recording + speaking. Scoped to the
   reservation widget (clean, non-compact). Tap targets confirmed
   ≥44px: the mic circle is ~120px, controls (.fz-vc-btn) get min 44px.
   ============================================================ */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-button svg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-holding .fz-mic-button svg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-listening .fz-mic-button svg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-speaking .fz-mic-button svg{
  color:#fff!important; stroke:#fff!important; fill:none!important; opacity:1!important;
}
/* the pause / restart / switch-to-chat / hands-free controls read well + are ≥44px tall */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-controls{
  flex-wrap:wrap; gap:8px;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn{
  min-height:44px; padding:11px 16px; font-size:13px;
}
@media(max-width:920px){
  /* mic hint label legible; voice greeting + control buttons comfortable on phones */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-hint{ font-size:13.5px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-controls .fz-vc-btn{ flex:1 1 auto; }
}

/* Refinement: when a booking flow is LIVE, the left column shows ONLY the Sophie
   greeter + "Your trip so far" — hide the 3 trust items (they belong to the idle
   marketing state). Also nudge the Sophie greeter left (smaller avatar, tighter gap). */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-rsv-trust{ display:none!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{ gap:11px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av{ width:52px!important; height:52px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av svg,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av img{ width:52px!important; height:52px!important; }
}

/* Desktop: keep the Chat/Voice/Form segmented control clear of the top-right EN/FR pill (was overlapping "Form") */
@media(min-width:921px){
  /* v0.49.21 FIX 1 — CENTER the segmented control above the white panel card.
     Was left-aligned (margin:0 0 18px 0). Now centered (margin:0 auto 18px) with a
     tidy 360px cap so the 3-segment pill stays compact. The EN/FR toggle is absolutely
     positioned top-right (right:18px); a centered ≤360px control + the 40px right padding
     on the chooser row keep it well clear of the toggle — no collision. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active{ max-width:360px!important; margin:0 auto 18px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{ top:16px!important; right:16px!important; }
}

/* ============================================================
   v0.49.21 — DESKTOP (≥761px) reservation-widget polish.
   Scope: #gyl-fizza-root.fz-theme-clean:not(.fz-compact). The ≤760
   mobile rules + the compact hero quote box (.fz-compact) are untouched.
   ============================================================ */
@media(min-width:921px){
  /* ---- FIX 2 — clear, premium ACTIVE/INACTIVE segment state ----
     Earlier rules (~line 59, ~825, ~1660) fill the active tab gold/navy, which left a
     dark icon on a dark/saturated fill (icon vanished). Make the active segment an
     unambiguous dark graphite pill with WHITE label + WHITE icon; inactive segments are
     muted text with their icon visible in the SAME muted tone. These rules sit AFTER the
     gold ones in source order and use the same specificity, so they win. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab{
    color:#6b6256!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab svg{
    color:#6b6256!important; stroke:#6b6256!important; opacity:1!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active{
    background:#15120f!important; color:#fff!important;
    box-shadow:0 4px 12px -4px rgba(20,18,12,.5)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active svg{
    color:#fff!important; stroke:#fff!important; opacity:1!important;
  }

  /* ---- FIX 4 — in-panel greeter row fits neatly INSIDE the white card ----
     The card (.fz-panel) has border-radius:20px + overflow:hidden. The head's base style
     uses a dark translucent bg (rgba(0,0,0,.35)) that looked wrong on the white clean card
     and could bleed past the radius. Make it a clean white head with balanced 16px/20px
     insets, a hairline divider, dark ink text, and a green online dot — consistent across
     chat/voice/form. (Mobile hides .fz-panel .fz-panel-head; that rule stays.) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head{
    display:flex!important; align-items:center; justify-content:space-between;
    gap:14px; padding:16px 20px!important; margin:0!important;
    background:#fff!important; border:0!important;
    border-bottom:1px solid rgba(20,18,12,.10)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-agent{
    display:flex; align-items:center; gap:11px; min-width:0; flex:1 1 auto;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-who,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-who h4{
    min-width:0; color:#15120f!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-who h4{
    font:700 15px/1.2 "Manrope",system-ui,sans-serif; margin:0;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-who .fz-role,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-status,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-status *{
    color:#6b6256!important;
  }

  /* ---- FIX 3 — close (×) button: comfortable, clearly visible round control ----
     Was ~32px, low-contrast grey on the dark head. Make it a 38px round button with a
     subtle cream fill, hairline border, dark-gold 22px glyph, and an obvious hover. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-close{
    flex:0 0 auto; width:44px; height:44px; min-width:44px; padding:0;
    display:inline-flex; align-items:center; justify-content:center;
    border-radius:50%; line-height:1;
    font-size:22px; font-weight:400;
    background:#faf7ee!important; border:1px solid rgba(20,18,12,.12)!important;
    color:#9a7400!important; cursor:pointer;
    transition:background .15s, color .15s, border-color .15s;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head .fz-close:hover{
    background:rgba(255,204,0,.16)!important; border-color:rgba(154,116,0,.4)!important; color:#15120f!important;
  }
}

/* ============================================================
   v0.49.19 — MOBILE polish (≤760px) for the RESERVATION widget.
   Scope: #gyl-fizza-root.fz-theme-clean:not(.fz-compact). Desktop
   two-column split (≥761px) and the compact hero quote box
   (.fz-compact) are untouched.

   FIX 1 — KEEP + polish the top Sophie brand header (.fz-rsv-head)
   as a clean cream rounded card (avatar + greeter left, Google
   review pill right). HIDE only the trip panel + dispatch chips,
   and HIDE each panel's duplicate in-panel greeter (.fz-panel-head).
   ============================================================ */
@media(max-width:920px){
  /* No leftover desktop 380px left-padding on the root. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact){ padding:0!important; min-height:0!important; }

  /* The "YOUR TRIP SO FAR" box must NOT appear on mobile. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel{ display:none!important; }

  /* KEEP the brand header — restyle it from the desktop dark left-column
     into a tidy cream rounded card. (Desktop ≥761 rules above turn it dark + absolute;
     here at ≤760 the cascade falls back to flow + this cream styling.) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{
    display:flex!important; flex-direction:row!important; flex-wrap:wrap!important;
    align-items:center!important; justify-content:space-between!important;
    gap:10px 14px!important; position:static!important; width:auto!important;
    padding:13px 15px!important; margin:0 0 14px!important; overflow:visible!important;
    background:var(--fz-card-2,#faf8f2)!important;
    border:1px solid var(--fz-line,rgba(20,18,12,.12))!important; border-radius:16px!important;
    color:var(--fz-ink,#15120f)!important;
  }
  /* the dark-panel-only marketing bits stay hidden on the cream card */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-rsv-tag,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-rsv-trust,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-status-strip,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-statbar{ display:none!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-hdr-toggle{ display:none!important; }

  /* greeter: avatar + name/role/online in a left column */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{
    display:flex!important; flex:1 1 auto; min-width:0; align-items:center; gap:11px;
    margin:0!important; padding:0!important; background:none!important; border:0!important;
    box-shadow:none!important; border-radius:0!important; justify-content:flex-start!important;
    max-width:100%!important; text-align:left;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av{
    width:44px!important; height:44px!important; flex:0 0 auto; position:relative;
    border-radius:50%; overflow:visible;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av svg,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av img{
    width:44px!important; height:44px!important; object-fit:cover; border-radius:50%!important;
    display:block; background:#211b12; padding:0;
    box-shadow:0 0 0 2px var(--fz-gold-line,rgba(154,116,0,.5))!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av svg{ padding:6px; color:#FFCC00; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-dot{
    position:absolute; right:0; bottom:0; width:12px; height:12px; border:2.5px solid var(--fz-card-2,#faf8f2);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt{ min-width:0; text-align:left; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt h3{
    font-size:15.5px!important; line-height:1.15!important; margin:0!important; color:var(--fz-ink,#15120f)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt h3 em{ color:#8a6700!important; font-style:italic; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt p{
    font-size:11.5px!important; line-height:1.25!important; margin:2px 0 0!important; color:var(--fz-muted,#5c6678)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt p b{ color:#157a3a!important; font-weight:600; }

  /* Google review pill — aligned right; wraps below the greeter on very narrow widths. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{
    display:inline-flex!important; flex:0 0 auto; margin:0 0 0 auto!important; padding:6px 12px!important;
    gap:7px!important; align-self:center;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview .fz-grev-label{ display:none!important; }
  /* very narrow: let the pill drop to its own line, left-aligned, instead of overflowing */
  @media(max-width:420px){
    #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{ flex:1 1 100%; }
    #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{ margin:0!important; }
  }

  /* FIX 1 — DUPLICATE GREETER: each panel renders its own in-panel Sophie header
     (.fz-panel-head). With the top brand header kept, hide the in-panel one on mobile
     so Sophie isn't shown twice. (Desktop keeps .fz-panel-head untouched.) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head{ display:none!important; }

  /* ============================================================
     FIX 4 — Form tab (Trip / You / Confirm) polish on mobile.
     ============================================================ */
  /* step indicator rail: tidy, readable, no 3-line wrap */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail{
    padding:12px 14px!important; gap:6px; border-bottom:1px solid rgba(20,18,12,.08); background:transparent;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage{
    font-size:10px!important; letter-spacing:.5px!important; gap:6px!important; color:#8a8478;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage.active{ color:#9a7400; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage.active .fz-stage-num{
    background:linear-gradient(135deg,#FFCC00,#f0a500); color:#15120f; border-color:transparent;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-num{ width:20px; height:20px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-bar{ background:rgba(20,18,12,.12); }
  /* body padding + comfortable spacing */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-body{ padding:16px 16px 14px!important; }
  /* question + helper sized for phones */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-question{ font-size:21px!important; line-height:1.2!important; color:#15120f; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-helper{ font-size:13px!important; line-height:1.45!important; color:#6b6256; }
  /* inputs: ≥44px tall, 16px font (no iOS zoom), light field */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input{
    min-height:48px; padding:13px 48px 13px 16px; font-size:16px!important; line-height:1.35;
    border-radius:13px; background:#faf7ee!important; border:1px solid rgba(20,18,12,.16)!important; color:#15120f!important;
    font-family:"Manrope",system-ui,sans-serif!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input::placeholder{ color:#8a8478; font-style:normal; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input:focus{
    border-color:rgba(154,116,0,.55)!important; background:#fff!important; box-shadow:0 0 0 3px rgba(255,204,0,.16);
  }
  /* suggestion chips: comfortable tap size */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug{
    min-height:38px; padding:9px 14px; font-size:12.5px; background:#faf7ee; border-color:rgba(20,18,12,.14); color:#3a352e;
  }
  /* You step — name/email/phone inputs share the same comfortable treatment via .fz-form-input above */
  /* Confirm step — payment .fz-in fields + Book button, tidy + ≥44px */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-in{ min-height:48px; font-size:16px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-pay-opt{ min-height:60px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-pay-confirm{ min-height:52px; font-size:16px; }
  /* nav row: Back link + obvious primary Next/Book button */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-nav{ padding-top:16px; gap:12px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-prev{ min-height:44px; display:inline-flex; align-items:center; font-size:13px; color:#6b6256; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-next{
    min-height:48px; padding:13px 24px!important; font-size:13px; border-radius:13px;
    background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important; border:0;
    box-shadow:0 10px 24px -10px rgba(240,165,0,.6);
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-trust{ font-size:11px; color:#8a8478; margin-top:12px; }
  /* form estimate box (when shown) reads on the light card */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-estimate{ background:#faf7ee; border-color:rgba(255,204,0,.4); color:#3a352e; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-estimate .fz-fe-text b{ color:#15120f; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-estimate .fz-fe-price{ color:#9a7400; }
}

/* ============================================================================
   v0.49.22 — INNER PANEL RESTYLE to the three approved Sophie mockups.
   ALL rules scoped to the reservation widget = #gyl-fizza-root.fz-theme-clean
   :not(.fz-compact). Restyles ONLY the three inner panels + their children
   (#fz-panel-chat · #fz-panel-voice · #fz-panel-form). The left dark trip panel
   (.fz-rsv-head / .fz-trip-panel), the centered Chat/Voice/Form tab bar
   (#fz-chooser-tabs / .fz-tab) and ALL JavaScript + element IDs/classes are
   left untouched. CSS-only; .fz-compact hero quote box + other sites unaffected.
   Brand: ink #15120f · gold #FFCC00→#f0a500 · cream #faf7ee · muted #6b6256 ·
   hairline rgba(20,18,12,.12) · dark-gold text #8a6700 · online-green #157a3a.
   ============================================================================ */

/* ───────────────────────────── CHAT · "01 Concierge Minimal" ───────────────────────────── */
/* Airy white panel. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat{
  background:#ffffff!important;
}
/* "Already booked with us?" manage strip = quiet cream rail, calendar icon + outline Manage. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-edit-banner{
  margin:0 0 4px!important; padding:11px 16px!important; gap:11px!important;
  background:#faf7ee!important; border:1px solid rgba(20,18,12,.10)!important; border-radius:14px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-edit-ico{
  width:30px!important; height:30px!important; border-radius:9px!important;
  background:rgba(255,204,0,.16)!important; color:#8a6700!important; border:1px solid rgba(255,204,0,.4)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-edit-ico svg{ color:#8a6700!important; stroke:#8a6700!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-edit-text{ color:#5c554a!important; font-weight:500!important; font-size:13px!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-edit-text span{ color:#15120f!important; font-weight:500!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-edit-cta{
  background:#ffffff!important; color:#15120f!important; border:1px solid rgba(20,18,12,.14)!important;
  border-radius:999px!important; padding:6px 15px!important; font-weight:600!important; font-size:12px!important; letter-spacing:0!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-edit-cta:hover{
  background:#fffdf5!important; color:#15120f!important; border-color:#f0a500!important;
}
/* Chat thread breathing room. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-thread{ padding:18px 2px 6px!important; gap:0!important; }
/* Sophie bubbles — soft CREAM, generous radius, tail bottom-left. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg{
  max-width:80%!important; padding:13px 17px!important; border-radius:18px!important;
  font-family:"Manrope",system-ui,sans-serif!important; font-size:14.5px!important; line-height:1.55!important; margin-bottom:18px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.agent{
  background:#faf7ee!important; color:#26211a!important; border:0!important;
  border-bottom-left-radius:5px!important; border-bottom-right-radius:18px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.agent em{ color:#8a6700!important; font-style:italic!important; }
/* Customer reply — near-BLACK bubble, cream text, tail bottom-right. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.user{
  background:#15120f!important; color:#faf7ee!important; border:0!important;
  border-bottom-right-radius:5px!important; border-bottom-left-radius:18px!important;
}
/* timestamp + "Change" UNDER the customer bubble (meta is inside .fz-msg.user). */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg-meta{
  font-family:"Manrope",system-ui,sans-serif!important; font-size:10.5px!important; letter-spacing:.04em!important; margin-top:8px!important; color:#a89e8e!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.user .fz-msg-meta{
  color:rgba(250,247,238,.62)!important; justify-content:flex-end!important;
}
/* "Change" pill = dark-gold text, no fill (matches mockup's understated CHANGE link). */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.user .fz-edit-pill{
  background:transparent!important; border:0!important; color:#FFCC00!important;
  font-weight:600!important; letter-spacing:.05em!important; padding:0!important; text-transform:uppercase!important; font-size:10.5px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.user .fz-edit-pill svg{ color:#FFCC00!important; stroke:#FFCC00!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.user .fz-edit-pill:hover{ filter:brightness(1.08)!important; transform:none!important; }
/* Suggestion chips — white hairline pills. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-quick-chips{ gap:8px!important; padding:0 2px 4px!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-qc{
  background:#ffffff!important; border:1px solid rgba(20,18,12,.12)!important; color:#3a352c!important;
  border-radius:999px!important; padding:8px 15px!important; font-weight:500!important; font-size:13px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-qc:hover{
  background:#fffdf5!important; color:#3a352c!important; border-color:#f0a500!important;
}
/* Input bar — round black mic + rounded field + round gold send. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap{
  border-top:1px solid rgba(20,18,12,.12)!important; background:transparent!important; gap:10px!important; padding:14px 2px 4px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input{
  flex:1!important; background:#ffffff!important; border:1px solid rgba(20,18,12,.12)!important; border-radius:999px!important;
  padding:12px 18px!important; font-family:"Manrope",system-ui,sans-serif!important; font-size:16px!important; color:#15120f!important; min-height:44px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input::placeholder{ color:#9a9081!important; font-style:normal!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input:focus{
  border-color:#f0a500!important; box-shadow:0 0 0 3px rgba(255,204,0,.16)!important;
}
/* round BLACK mic, WHITE mic glyph */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap [data-action="mic"]{
  width:44px!important; height:44px!important; border-radius:50%!important;
  background:#15120f!important; border:0!important; color:#ffffff!important; flex:none!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap [data-action="mic"] svg{ color:#ffffff!important; stroke:#ffffff!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap [data-action="mic"]:hover{ background:#26211a!important; }
/* round GOLD send, DARK arrow */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn.send{
  width:44px!important; height:44px!important; border-radius:50%!important;
  background:linear-gradient(135deg,#FFCC00,#f0a500)!important; border:0!important; flex:none!important;
  box-shadow:0 8px 18px -8px rgba(240,165,0,.55)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap .fz-icon-btn.send svg{
  color:#15120f!important; stroke:#15120f!important; width:18px!important; height:18px!important;
}

/* ───────────────────────────── VOICE · "06 Orbit Halo" ───────────────────────────── */
/* Centered hero: black circular mic + two thin gold halo rings + one orbiting gold node. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice{ background:#faf7ee!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-body{ gap:14px!important; }
/* serif-accented greeter prompt */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet{
  font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important; font-size:20px!important; line-height:1.3!important;
  letter-spacing:-.015em!important; color:#15120f!important; max-width:380px!important; margin:0 auto 2px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet span{
  display:block!important; margin-top:7px!important; font-family:"Manrope",system-ui,sans-serif!important; font-weight:400!important;
  font-size:14.5px!important; line-height:1.5!important; color:#6b6256!important; opacity:1!important;
}
/* The mic SHELL hosts the twin halo rings via ::before (outer, static) + ::after (inner, spinning + node). */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell{
  width:172px!important; height:172px!important; position:relative!important;
}
/* kill the dark-theme blurred glow + the 3 ripple rings — Orbit Halo uses crisp thin rings instead */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-bg{ display:none!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-ring{ display:none!important; }
/* outer halo: thin gold ring at the shell edge */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell::before{
  content:""!important; position:absolute!important; inset:0!important; border-radius:50%!important;
  border:2px solid rgba(255,204,0,.30)!important; pointer-events:none!important;
}
/* inner halo: thin gold ring, slowly spinning, carrying one gold node on top */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell::after{
  content:""!important; position:absolute!important; inset:14px!important; border-radius:50%!important;
  border:1.5px solid rgba(255,204,0,.5)!important; pointer-events:none!important;
  background:radial-gradient(circle at 50% 0, #FFCC00 0 4.5px, transparent 5px)!important;
  animation:fz-orbit-halo 14s linear infinite!important;
}
@keyframes fz-orbit-halo{ to{ transform:rotate(360deg); } }
/* black circular press-to-talk button with a GOLD mic icon */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-button{
  position:relative!important; width:108px!important; height:108px!important; border-radius:50%!important;
  background:#15120f!important; box-shadow:0 10px 30px rgba(20,18,12,.3)!important; border:0!important; z-index:3!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-button svg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-holding .fz-mic-button svg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-listening .fz-mic-button svg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-speaking .fz-mic-button svg{
  color:#FFCC00!important; stroke:#FFCC00!important; width:38px!important; height:38px!important;
}
/* "HOLD TO TALK" label under the mic */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-hint{
  font-family:"Manrope",system-ui,sans-serif!important; font-weight:700!important; font-size:12px!important;
  letter-spacing:.14em!important; text-transform:uppercase!important; color:#6b6256!important; margin-top:14px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-holding ~ .fz-mic-hint,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-listening ~ .fz-mic-hint,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-speaking ~ .fz-mic-hint{ color:#8a6700!important; }
/* "I heard…" transcript box (the JS renders bubbles into .fz-voice-convo) */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-convo{
  width:100%!important; max-width:430px!important; text-align:left!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-bubble{
  background:#ffffff!important; border:1px solid rgba(20,18,12,.12)!important; color:#15120f!important;
  border-radius:14px!important; box-shadow:0 1px 2px rgba(20,18,12,.06),0 2px 6px rgba(20,18,12,.05)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-bubble .fz-vb-tag{ color:#8a6700!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-bubble .fz-vb-text{ color:#15120f!important; }
/* EQ bars while listening/speaking — keep, but gold on cream reads fine */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-eq span{
  background:linear-gradient(180deg,#FFCC00,#f0a500)!important; box-shadow:none!important;
}
/* controls row — outline pills + one gold "Hands-free" */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-controls{
  gap:9px!important; padding-top:18px!important; margin-top:4px!important; border-top:1px solid rgba(20,18,12,.08)!important; flex-wrap:wrap!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn{
  background:#ffffff!important; border:1px solid rgba(20,18,12,.12)!important; color:#2a251d!important;
  border-radius:11px!important; padding:9px 14px!important; font-weight:600!important; font-size:13px!important; min-height:40px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn:hover{
  background:#fffdf5!important; color:#15120f!important; border-color:#f0a500!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn.is-primary,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn[data-action="ptt-toggle"].on{
  background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important; border:0!important;
}

/* ───────────────────────────── FORM · "07 Timeline Journey" ───────────────────────────── */
/* The stage rail becomes a VERTICAL route line; the active step's question/chips/field flow
   in .fz-form-body directly under the rail = the "expanded active step". */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form{ background:#ffffff!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail{
  display:flex!important; flex-direction:column!important; align-items:stretch!important;
  position:relative!important; gap:16px!important; padding:20px 22px 8px 52px!important;
  background:transparent!important; border-bottom:0!important;
}
/* the route line */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail::before{
  content:""!important; position:absolute!important; left:31px!important; top:26px!important; bottom:26px!important;
  width:2px!important; background:rgba(20,18,12,.12)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage{
  display:block!important; position:relative!important; flex:none!important;
  font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important; font-size:13px!important;
  letter-spacing:0!important; text-transform:none!important; color:#a59b88!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage.active{ color:#15120f!important; }
/* the stop dot, pulled into the rail's gutter */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-num{
  position:absolute!important; left:-30px!important; top:-1px!important; width:20px!important; height:20px!important;
  border-radius:50%!important; background:#ffffff!important; border:2px solid rgba(20,18,12,.12)!important;
  color:transparent!important; font-size:0!important; z-index:1!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage.active .fz-stage-num{
  background:#FFCC00!important; border-color:#f0a500!important;
}
/* gold filled dot core for the active stop */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage.active .fz-stage-num::after{
  content:""!important; position:absolute!important; left:50%!important; top:50%!important; transform:translate(-50%,-50%)!important;
  width:7px!important; height:7px!important; border-radius:50%!important; background:#15120f!important;
}
/* per-step sublabel under each stop */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage::after{
  display:block!important; margin-top:1px!important; font-family:"Manrope",system-ui,sans-serif!important;
  font-weight:400!important; font-size:12px!important; letter-spacing:0!important; text-transform:none!important; color:#a59b88!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage:nth-of-type(1)::after{ content:"What we're arranging"; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage:nth-of-type(2)::after{ content:"Name, email, phone"; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage:nth-of-type(3)::after{ content:"Summary, payment & book"; }
/* hide the horizontal connector bars (the vertical route line replaces them) */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-bar{ display:none!important; }
/* active step body = the expanded stop content */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-body{ padding:8px 22px 22px 52px!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-progress{ display:none!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-step-meta{
  font-family:"Manrope",system-ui,sans-serif!important; color:#9b917f!important; font-size:11px!important; letter-spacing:.06em!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-question{
  font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important; font-size:20px!important; line-height:1.2!important;
  letter-spacing:-.015em!important; color:#15120f!important; margin:0 0 6px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-question::before,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-question::after{ content:none!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-helper{
  font-family:"Manrope",system-ui,sans-serif!important; font-size:14px!important; color:#6b6256!important; margin:0 0 4px!important;
}
/* "Type here…" field */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input{
  width:100%!important; min-height:50px!important; border:0!important; background:#faf7ee!important; border-radius:11px!important;
  padding:0 48px 0 15px!important; font-family:"Manrope",system-ui,sans-serif!important; font-size:16px!important; color:#15120f!important; margin-top:14px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input::placeholder{ color:#a59b88!important; font-style:normal!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input:focus{
  background:#ffffff!important; box-shadow:0 0 0 3px rgba(255,204,0,.16)!important; outline:0!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-check{ background:rgba(255,204,0,.18)!important; color:#8a6700!important; }
/* choice chips — pills; active = gold pill with check */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-suggestions{ gap:9px!important; margin-top:14px!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug{
  display:inline-flex!important; align-items:center!important; gap:7px!important;
  background:#ffffff!important; border:1.5px solid rgba(20,18,12,.12)!important; color:#15120f!important;
  border-radius:999px!important; padding:10px 15px!important; font-family:"Manrope",system-ui,sans-serif!important;
  font-weight:600!important; font-size:13.5px!important; min-height:40px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug:hover{
  background:#fffdf5!important; border-color:#f0a500!important; color:#15120f!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug.is-active,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug[aria-selected="true"],
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug.selected{
  background:#FFCC00!important; border-color:#f0a500!important; color:#15120f!important;
}
/* nav row — "← Back" + gold "Next →" */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-nav{ margin-top:26px!important; padding-top:0!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-prev{
  font-family:"Manrope",system-ui,sans-serif!important; font-weight:600!important; font-size:14px!important; color:#6b6256!important; min-height:44px!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-prev:hover{ color:#15120f!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-next{
  font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important; font-size:15px!important;
  letter-spacing:0!important; text-transform:none!important; min-height:50px!important; padding:0 22px!important; border-radius:11px!important;
  background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important; border:0!important;
  box-shadow:0 10px 24px -10px rgba(240,165,0,.6)!important;
}
/* reassurance line */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-trust{
  font-family:"Manrope",system-ui,sans-serif!important; font-size:12.5px!important; color:#6b6256!important;
  letter-spacing:0!important; text-align:center!important; margin-top:16px!important;
}

/* ───── DESKTOP (≥761px) split-layout refinements for the three panels ───── */
@media(min-width:921px){
  /* panels live in the white right column; give them comfortable interior padding */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap{ padding:14px 0 4px!important; }
  /* Voice: keep the orbit-halo hero vertically centered in the column */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-body{ justify-content:center!important; }
  /* Form vertical rail sits cleanly in the wider column */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail{ padding-top:24px!important; }
}

/* ───── MOBILE (≤760px) tightening so all three panels fit a 390px phone ───── */
@media(max-width:920px){
  /* CHAT */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg{ max-width:86%!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-chat-input-wrap{ padding:12px 0 6px!important; gap:8px!important; }
  /* VOICE — shrink the halo so it never clips on a narrow phone */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell{ width:150px!important; height:150px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-button{ width:96px!important; height:96px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet{ font-size:18px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn{ flex:1 1 auto!important; justify-content:center!important; }
  /* FORM — pull the rail/body insets in a touch on small screens */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail{ padding:16px 14px 6px 46px!important; gap:14px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail::before{ left:25px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-body{ padding:6px 14px 16px 46px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-question{ font-size:19px!important; }
}

/* Respect reduced-motion: freeze the orbiting halo node. */
@media(prefers-reduced-motion:reduce){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell::after{ animation:none!important; }
}
/* end v0.49.22 inner-panel restyle */

/* Form panel head: keep "Swap to chat" on one line (was wrapping/cramped in the Timeline design) */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-actions{ display:flex; align-items:center; gap:8px; flex:0 0 auto; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-swap{ white-space:nowrap; flex:0 0 auto; line-height:1.1; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-panel-head .fz-agent{ min-width:0; }

/* --deep audit fixes (v0.49.26): (a) EN/FR toggle ≥44px hit area on desktop;
   (b) form panel-head must not horizontally overflow at tablet widths. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{ min-height:44px; align-items:center; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang button{ min-height:40px; padding:0 14px; display:inline-flex; align-items:center; }
}
@media(min-width:921px) and (max-width:980px){
  /* tablet: keep the form trip-detail head from overflowing (Swap-to-chat + status crammed) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-panel-head{ flex-wrap:nowrap; overflow:hidden; gap:8px; padding-left:16px; padding-right:16px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-panel-head .fz-agent{ min-width:0; flex:1 1 auto; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-panel-head .fz-status{ white-space:normal; overflow:hidden; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-swap{ font-size:9.5px!important; padding:6px 9px!important; }
}

/* ============================================================================
   v0.49.28 — APPROVED FINAL DESIGN: Desktop "Concierge Ledger" +
   Mobile "One-Question" 5-screen system. EVOLVE/RESTYLE pass — layers on top
   of all prior clean-theme rules (last in source order wins at equal
   specificity). EVERYTHING scoped to the reservation widget =
   #gyl-fizza-root.fz-theme-clean:not(.fz-compact) so the compact hero quote
   box (.fz-compact), the dark default theme, and every other site are
   untouched. CSS-only; no JS, no element IDs/classes renamed. Brand tokens
   only: ink #15120f · gold #FFCC00→#f0a500 · cream #faf7ee · white · muted
   #6b6256 · dark-gold-on-light #8a6700 · online-green #157a3a · Sora/Manrope/
   Fraunces. Premium inline-SVG icons only (no emoji). No fabricated reviews.
   ============================================================================ */

/* The new editorial headline block is desktop-left-panel only: hide on mobile
   exactly like .fz-rsv-tag / .fz-rsv-trust / .fz-rsv-rhead already are. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-editorial{ display:none; }

/* ──────────────────────────────────────────────────────────────────────────
   DESKTOP (≥921px) — "Concierge Ledger"
   LEFT dark panel: editorial Fraunces-italic headline + lede + the existing
   "Your trip so far" ledger + the trust strip. RIGHT cream surface: Sophie
   header, Chat/Voice/Form switcher top-right, the booking surface, gold
   "Continue →" primary action + "Flat-rate · no surge".
   ────────────────────────────────────────────────────────────────────────── */
@media(min-width:921px){
  /* the whole frame reads a touch warmer + more editorial */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact){
    max-width:1000px!important; padding-left:404px!important;
    border-radius:24px!important; background:#faf7ee!important;
    box-shadow:0 48px 100px -54px rgba(20,18,12,.5)!important;
  }
  /* LEFT brand/ledger panel — wider, deeper black, calm editorial rhythm */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{
    width:404px!important; padding:40px 36px!important; gap:0!important;
    background:radial-gradient(120% 80% at 18% 0%, #211b14 0%, #15120f 58%, #100d0a 100%)!important;
    justify-content:flex-start!important;
  }
  /* greeter sits at the very top, compact */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter{
    margin:0 0 22px!important; flex:0 0 auto!important;
  }
  /* EDITORIAL HEADLINE — "Your car, arranged." (Fraunces italic accent) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-editorial{
    display:block!important; margin:0 0 16px!important; flex:0 0 auto;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-headline{
    margin:0!important; font-family:"Sora",system-ui,sans-serif; font-weight:600;
    font-size:38px; line-height:1.02; letter-spacing:-.03em; color:#ffffff;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-headline em{
    font-family:"Fraunces","Georgia",serif; font-style:italic; font-weight:400; color:#FFCC00;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-lede{
    margin:13px 0 0!important; max-width:30ch;
    font:400 13.5px/1.6 "Manrope",system-ui,sans-serif; color:rgba(255,255,255,.62);
  }
  /* the old plain tagline is redundant under the editorial headline → hide on desktop */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-tag{ display:none!important; }

  /* the ledger ("Your trip so far") gets the framed card treatment from the mockup
     and is ALWAYS visible on desktop (idle = all "Awaiting…", fills as you book) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel{
    display:block!important; width:100%!important; margin:22px 0 0!important;
    background:rgba(255,255,255,.045)!important; border:1px solid rgba(255,255,255,.10)!important;
    border-radius:15px!important; padding:16px 17px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-head{
    color:#FFCC00!important; letter-spacing:.16em!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-head-ic{ display:none!important; }
  /* idle empty rows read as the mockup's italic-serif "Awaiting…" */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-val.is-empty{
    font-family:"Fraunces","Georgia",serif!important; font-style:italic!important;
    color:rgba(255,255,255,.42)!important;
  }
  /* when a flow is live, the live trip panel rule (≈line 1602) already bounds + scrolls it;
     keep its framed card look consistent there too */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel{
    background:rgba(255,255,255,.045)!important; border:1px solid rgba(255,255,255,.10)!important;
    border-radius:15px!important; padding:16px 17px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel .fz-tp-head{ background:#171309!important; }

  /* TRUST STRIP — single-line "Licensed & insured · Flight-tracked · 24/7 dispatch"
     pushed to the bottom of the dark panel (idle marketing state). */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust{
    margin:auto 0 0!important; padding-top:20px!important; gap:11px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust li{
    font:600 12px/1.3 "Manrope",system-ui,sans-serif!important; color:rgba(255,255,255,.78)!important;
  }
  /* reviews pill sits just above the trust strip, understated */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{
    margin:18px 0 0!important;
  }

  /* RIGHT cream surface */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead{ padding:32px 40px 0!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-rhead-h{
    font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important; font-size:19px!important;
    letter-spacing:-.01em!important; color:#15120f!important;
  }
  /* the right-column intro + chooser cards sit on cream, panels are white cards */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel{
    background:#ffffff!important; border:1px solid rgba(20,18,12,.10)!important; border-radius:18px!important;
    box-shadow:0 24px 50px -40px rgba(20,18,12,.4)!important;
  }

  /* Chat/Voice/Form SWITCHER — top-right of the cream surface, premium pill.
     (Shown once a mode is picked; lives in the right column via prior rules.) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active{
    margin:0 40px 16px auto!important; max-width:330px!important;
    background:#ffffff!important; border:1px solid rgba(20,18,12,.12)!important;
    border-radius:14px!important; box-shadow:0 6px 16px -12px rgba(20,18,12,.4)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active{
    background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important;
    box-shadow:0 4px 12px -3px rgba(240,165,0,.55)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active svg{
    color:#15120f!important; stroke:#15120f!important;
  }

  /* primary action — the gold "Continue →" / send / next reads as the single
     confident gold action with a "Flat-rate · no surge" reassurance handled by
     the form-trust line. (Form Next button styled below for both viewports.) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-next{
    background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important; border:0!important;
    box-shadow:0 12px 26px -12px rgba(240,165,0,.7)!important; min-height:48px!important;
    font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important;
  }
}

/* keep the greeter sub-text + reviews readable on the dark panel (contrast) */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-txt h3 em{ color:#FFCC00!important; }
}

/* ──────────────────────────────────────────────────────────────────────────
   MOBILE (≤920px) — "One-Question" system.
   Premium pill switcher visible at top of every screen + cream one-question
   form (big option cards, oversized question, step progress) + chat/voice in
   line. Keeps the polished top Sophie header + the 920 breakpoint + ≥44px
   targets + 16px inputs + the #fz-form-input ✓-tick right padding. The trip
   panel stays HIDDEN on mobile (prior guardrail) — no fabricated review shown.
   ────────────────────────────────────────────────────────────────────────── */
@media(max-width:920px){
  /* --- premium SEGMENTED PILL switcher (the missing-no-more Chat/Voice/Form) --- */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs{
    display:flex!important; gap:6px!important;
    background:rgba(21,18,15,.05)!important; border:0!important;
    border-radius:15px!important; padding:5px!important; margin:0 0 16px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab{
    flex:1!important; flex-direction:column!important; gap:5px!important;
    height:auto!important; min-height:58px!important; padding:10px 6px!important;
    border-radius:12px!important; background:transparent!important;
    font:600 12.5px/1 "Sora","Manrope",system-ui,sans-serif!important; color:#6b6256!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab svg{
    width:18px!important; height:18px!important; color:#6b6256!important; stroke:#6b6256!important;
  }
  /* active (or default Chat) segment = white pill, soft lift, gold-tinted glyph */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs:not(:has(.fz-tab.active)) .fz-tab[data-tab="chat"]{
    background:#ffffff!important; color:#15120f!important;
    box-shadow:0 4px 12px -5px rgba(20,18,12,.3)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs .fz-tab.active svg,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs:not(:has(.fz-tab.active)) .fz-tab[data-tab="chat"] svg{
    color:#8a6700!important; stroke:#8a6700!important;
  }

  /* --- FORM = the approved "One Question" stepped screen --- */
  /* the 3-stage rail (Trip/You/Confirm) becomes the slim 4-segment progress thread feel:
     keep the rail but make it a clean top progress strip, gold filled-active. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail{
    padding:6px 2px 14px!important; gap:6px!important; border-bottom:0!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage{ font-size:10px!important; }
  /* oversized one-question headline with Fraunces-italic accent feel */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-question{
    font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important;
    font-size:25px!important; line-height:1.08!important; letter-spacing:-.02em!important; color:#15120f!important;
    margin:2px 0 4px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-helper{
    font-size:13px!important; color:#6b6256!important;
  }
  /* eyebrow above the question — reuse the step-label as the "RESERVATION" eyebrow look */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-step-meta{
    margin-bottom:4px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form #fz-form-step-label{
    font:600 10.5px/1 "Sora","Manrope",system-ui,sans-serif!important; letter-spacing:.18em!important;
    text-transform:uppercase!important; color:#8a6700!important;
  }
  /* big tappable suggestion cards (airport quick-starts / trip-type) — large, left-aligned */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-suggestions{
    display:flex!important; flex-direction:column!important; gap:10px!important; margin-top:12px!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug{
    display:flex!important; align-items:center!important; gap:11px!important;
    width:100%!important; min-height:52px!important; padding:14px 16px!important;
    border-radius:14px!important; background:#ffffff!important;
    border:1.5px solid rgba(20,18,12,.12)!important; color:#15120f!important;
    font:600 15px/1.2 "Sora","Manrope",system-ui,sans-serif!important; text-align:left!important;
    transition:transform .18s, border-color .18s!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug:hover{
    transform:translateX(3px)!important; border-color:rgba(240,165,0,.5)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-sug svg{
    width:18px!important; height:18px!important; color:#8a6700!important; flex:none!important;
  }
  /* the input keeps its ✓-tick right padding (48px) from the prior mobile rule — DO NOT change.
     Just make it read as the premium one-question field. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input{
    border-radius:14px!important; border:1.5px solid rgba(20,18,12,.16)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-input:focus{
    border-color:#f0a500!important; box-shadow:0 0 0 3px rgba(255,204,0,.16)!important;
  }
  /* gold "Continue →" primary, with the "Flat-rate · flight-tracked · 24/7" reassurance below */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-next{
    width:auto!important; flex:1 1 auto!important;
    font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important; font-size:15px!important;
    background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important; border:0!important;
    box-shadow:0 12px 26px -12px rgba(240,165,0,.7)!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-trust{
    text-align:center!important; color:#6b6256!important;
  }

  /* --- CHAT in line with the premium look (cream surface, comfortable spacing) --- */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat{ background:#faf7ee!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.agent{
    background:#ffffff!important; border:1px solid rgba(20,18,12,.08)!important; color:#26211a!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-msg.user{
    background:#15120f!important; color:#faf7ee!important;
  }
  /* trip-type / option chips in chat = big tappable cards feel (still .fz-qc) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-chat .fz-qc{
    min-height:44px!important; font-size:14px!important; padding:10px 16px!important;
    background:#ffffff!important; border:1px solid rgba(20,18,12,.12)!important;
  }

  /* --- VOICE in line: cream surface, breathing black mic + gold halo (kept) --- */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice{ background:#faf7ee!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet{
    font-family:"Sora",system-ui,sans-serif!important; font-weight:600!important; font-size:19px!important;
    color:#15120f!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn{
    min-height:44px!important; background:#ffffff!important; border:1px solid rgba(20,18,12,.12)!important; color:#2a251d!important;
  }
}
/* end v0.49.28 — Concierge Ledger (desktop) + One-Question (mobile) */

/* v0.49.29 — Concierge-Ledger desktop fixes (eyeball pass):
   (1) greeter "Hi, I'm Sophie" was near-black on the dark panel = invisible → light + compact.
   (2) avatar face was a dark/empty circle → show the photo/illustration.
   (3) the fabricated "4.9 / 500+ Google reviews" badge must NOT show (hard rule) — already hidden
       on mobile; hide on the desktop hero too until a REAL GBP rating is provided. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter h3{ color:#faf7ee!important; font-size:13px!important; font-weight:600!important; letter-spacing:.02em; line-height:1.2; margin:0 0 2px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter h3 em{ color:#FFCC00!important; font-style:italic; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter p{ color:rgba(250,247,238,.72)!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av{ width:48px!important; height:48px!important; border-radius:50%!important; overflow:hidden!important; background:rgba(255,255,255,.08)!important; flex:0 0 auto!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av img{ width:100%!important; height:100%!important; object-fit:cover!important; display:block!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av svg{ width:100%!important; height:100%!important; color:#FFCC00!important; stroke:#FFCC00!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greview{ display:none!important; }
}

/* v0.49.30 — the fabricated "4.9 / 500+ Google reviews" badge must not appear on the reservation
   widget at ANY width (hard no-fabricated-reviews rule). Hidden mobile + desktop until a REAL
   Google rating + count is provided, then it returns with honest numbers. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-greview{ display:none!important; }

/* v0.49.31 — FIX: the EN/FR toggle (.fz-lang, absolute top-right ~90-110px wide) was overlapping
   the "Form" tab of the Chat/Voice/Form switcher (which ended only 40px from the right edge).
   Push the switcher left so it clears the toggle, and align the toggle to the switcher row. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active{ margin:0 132px 16px auto!important; max-width:300px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{ top:20px!important; right:34px!important; }
}

/* ════════════════════════════════════════════════════════════════════════════
   v0.49.32 — gyl-verify --deep defect sweep. Five fixes, ALL scoped to the
   reservation widget = #gyl-fizza-root.fz-theme-clean:not(.fz-compact). Layered
   last in source order so it wins at equal specificity. Brand tokens only
   (ink #15120f · deep #100d0a/#171309 · gold #FFCC00→#f0a500 · cream #faf7ee).
   No element IDs/classes/data-attrs renamed; every prior v0.49.x rule kept.
   ────────────────────────────────────────────────────────────────────────────
   BUG 1 + BUG 2 (desktop ≥921): the trip ledger (.fz-trip-panel) was clipped by
   max-height:calc(100vh-320px) + overflow:auto (v0.49.14 ≈ line 1602), so the
   bottom rows (Trip type / Phone / Email) hid behind an inner scroll and the
   sticky "YOUR TRIP SO FAR" head overlapped the first scrolled row; and the
   .fz-rsv-trust strip got squeezed to height 0. FIX = size the ledger to its
   content (NO inner scroll, NO sticky-overlap) and let the dark LEFT column
   (.fz-rsv-head) be the single scroll container only if the whole column truly
   can't fit — so all 8 rows + the trust strip are always laid out in flow.
   ════════════════════════════════════════════════════════════════════════════ */
@media(min-width:921px){
  /* left column: flex column that grows with content; allow it (not the ledger)
     to be the sole scroller as a last resort so nothing is ever clipped mid-row. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{
    overflow-y:auto!important; overflow-x:hidden!important;
    scrollbar-width:thin!important; scrollbar-color:rgba(255,255,255,.28) transparent!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head::-webkit-scrollbar{ width:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.28); border-radius:6px; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head::-webkit-scrollbar-track{ background:transparent; }

  /* ledger sizes to content in BOTH idle + live states — kill the inner clip+scroll
     that hid rows and forced the sticky-head collision. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel{
    max-height:none!important; overflow:visible!important; flex:0 0 auto!important;
  }
  /* the "YOUR TRIP SO FAR" head no longer needs to be sticky (no inner scroll);
     make it static + FULLY OPAQUE (solid deep panel bg) so a row can never bleed
     through it even if a future state re-introduces scrolling. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel .fz-tp-head,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel .fz-tp-head{
    position:static!important; background:#171309!important; z-index:2!important;
  }
  /* BUG 2: the trust strip must keep real, visible height below the ledger.
     Drop the margin:auto bottom-pin (which collapsed to 0 when the ledger ate the
     column) → a fixed top gap, never display:none, never zero-height. */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-rsv-trust{
    margin:20px 0 2px!important; flex:0 0 auto!important; min-height:auto!important;
  }
}

/* ────────────────────────────────────────────────────────────────────────────
   BUG 4 + BUG 5 (desktop ≥921): the EN/FR pill (.fz-lang, abs top:20 right:34)
   was still occluding the Chat/Voice/Form switcher in the active-panel state
   (where .fz-rsv-rhead is hidden, so the switcher row floats up to the top band
   the pill lives in). FIX = (a) push the switcher harder off the right edge AND
   (b) drop it onto its own row beneath the pill's vertical band, so the EN/FR
   pill and all three tabs are fully separated with a clear gap.
   ──────────────────────────────────────────────────────────────────────────── */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active{
    margin:18px 40px 16px auto!important; max-width:300px!important; clear:both!important;
  }
  /* keep the pill snug in the top-right corner, clear of the switcher's new row */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{ top:16px!important; right:34px!important; z-index:50!important; }
}

/* v0.49.33 — audit-driven fixes after v0.49.32 regressed two:
   (A) EN/FR was overlapping "Form" again (switcher right-margin got cut to 40 → restore generous
       clearance so the toggle and all 3 tabs are fully separated).
   (B) trust strip still height:0 — the left column content (editorial + 8-row ledger + trust) was
       taller than the right-panel-driven root height + root overflow:hidden clipped the trust strip.
       Give the desktop widget enough min-height and compact the ledger so the trust strip shows. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active{ margin:16px 160px 16px auto!important; max-width:296px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{ top:16px!important; right:30px!important; z-index:60!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact){ min-height:760px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{ overflow:visible!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel .fz-tp-row{ padding-top:6px!important; padding-bottom:6px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust{ display:flex!important; flex-wrap:wrap; gap:6px 14px; margin:16px 0 0!important; min-height:auto!important; position:static!important; visibility:visible!important; }
}

/* v0.49.34 — trust strip was display:none because the old ".fz-trip-live .fz-rsv-trust{display:none}"
   (mobile live-mode hide) outranked the desktop show rule. On the Concierge-Ledger desktop the trust
   strip is part of the design and must show even in trip-live. Match the .fz-trip-live specificity. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-rsv-trust,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust{ display:flex!important; flex-wrap:wrap; gap:6px 14px; margin:16px 0 0!important; min-height:auto!important; position:static!important; visibility:visible!important; }
}

/* v0.49.35 — left column content (editorial + 8-row ledger + trust) is ~846px but the widget was
   only 760 tall → the bottom of the trust strip was clipped by the root's rounded overflow.
   Raise the desktop min-height so everything fits with margin. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact){ min-height:880px!important; }
}

/* v0.49.36 — eyeball polish (desktop ≥921), Wali's 4 points:
   1) EN/FR was an oversized off-center pill → compact, centered radio-style toggle.
   2) In-panel Sophie header wasn't flush → touch the white panel's left & right edges.
   3) Left column order wrong → trip ledger UP (right under the intro), trust strip DOWN (bottom).
   4) "YOUR TRIP SO FAR" had a weird dark bar (the old opaque-sticky bg) → clean label + hairline. */
@media(min-width:921px){
  /* 1 — compact, centered EN/FR */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang{ padding:3px!important; gap:2px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-lang button{ min-height:28px!important; height:28px!important; min-width:34px!important; padding:0 11px!important; display:inline-flex!important; align-items:center!important; justify-content:center!important; line-height:1!important; border-radius:999px!important; font:700 11px/1 "Manrope",system-ui,sans-serif!important; }
  /* 2 — Sophie panel header flush to the white card edges */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel{ padding:0!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-panel .fz-panel-head{ margin:0!important; width:100%!important; border-left:0!important; border-right:0!important; border-top:0!important; border-radius:18px 18px 0 0!important; padding:16px 22px!important; }
  /* 3 — order: greeter+intro (0) → ledger → trust (bottom) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head{ display:flex!important; flex-direction:column!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel{ order:4!important; margin-top:6px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-trust{ order:8!important; margin:18px 0 2px!important; }
  /* 4 — clean the "YOUR TRIP SO FAR" header (drop the dark bar + sticky bg) */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-tp-head{ background:transparent!important; position:static!important; z-index:auto!important; padding:0 0 10px!important; margin:0 0 8px!important; border-bottom:1px solid rgba(255,255,255,.10)!important; }
}

/* v0.49.37 — the "YOUR TRIP SO FAR" dark bar persisted: the opaque rule is scoped
   ".fz-trip-live .fz-trip-panel .fz-tp-head" (higher specificity). Match it to clear the bar. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact).fz-trip-live .fz-trip-panel .fz-tp-head,
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-trip-panel .fz-tp-head{
    background:transparent!important; position:static!important; z-index:auto!important;
    padding:0 0 10px!important; margin:0 0 8px!important; border-bottom:1px solid rgba(255,255,255,.10)!important; box-shadow:none!important;
  }
}

/* v0.49.38 — gyl-eyes vision-critic findings (taste fixes):
   (a) form NEXT button was flex:1 1 auto → grew into a wide gold slab with the arrow jammed to
       the edge. Cap width + center label/arrow with even padding.
   (b) voice prompt + control buttons were low-contrast/ghosted on cream → readable. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet{ color:#15120f!important; opacity:1!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet span{ color:#4a4236!important; opacity:1!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn{ background:#fff!important; border:1px solid rgba(20,18,12,.22)!important; color:#15120f!important; opacity:1!important; box-shadow:0 1px 2px rgba(20,18,12,.05)!important; }
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn.is-primary{ background:linear-gradient(135deg,#FFCC00,#f0a500)!important; color:#15120f!important; border-color:transparent!important; }
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-next{
    flex:0 0 auto!important; width:auto!important; min-width:172px!important; max-width:252px!important;
    display:inline-flex!important; align-items:center!important; justify-content:center!important; gap:9px!important;
    padding:0 26px!important; min-height:50px!important; text-align:center!important;
  }
}

/* v0.49.39 — design-audit fixes (clean reservation widget only; never touches
   fz-theme-light / fz-theme-dark / fz-compact quote box). Scope: the reservation
   widget #gyl-fizza-root.fz-theme-clean:not(.fz-compact).
   (1) brand fonts everywhere — zero Montserrat/JetBrains-Mono/monospace.
   (3) EN/FR vs "Formulaire" switcher collision at desktop (≥921px).
   (5) voice panel never dimmed in any state.
   (7) chat agent bubble = near-black on white, fully readable. */

/* (1) Brand fonts — force Manrope on all body/UI text + inputs/buttons; Sora on headings.
   Kills the leftover JetBrains-Mono/monospace .fz-msg-meta and any inherited Montserrat. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-msg,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-msg-meta,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-chat-input,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) input,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) textarea,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) button{
  font-family:"Manrope",system-ui,-apple-system,sans-serif!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-voice-greet,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-headline,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) h1,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) h2,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) h3,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) h4{
  font-family:"Sora",system-ui,-apple-system,sans-serif!important;
}

/* (7) chat agent bubble — near-black text on white (was inheriting dark-theme #d7d1c4
   faded grey on the cream theme = unreadable). */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-msg.agent{
  background:#fff!important; color:#15120f!important; border:1px solid rgba(20,18,12,.10)!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-msg.agent em{
  color:#8a6700!important; font-style:italic!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-msg-meta{ color:#6b6256!important; }

/* (5) voice panel must rest fully BRIGHT — neutralize any thinking/speaking dim
   (filter/opacity) so the idle "Hold to talk" state never looks disabled. */
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-thinking .fz-mic-button,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-speaking .fz-mic-button{
  filter:none!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-shell.is-thinking .fz-mic-bg{
  opacity:1!important;
}
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-greet span,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-vc-btn,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-mic-hint,
#gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-voice .fz-voice-body{
  opacity:1!important;
}

/* (3) EN/FR vs switcher pill collision — at FR width "Formulaire" pushed the active
   switcher pill into the language toggle. Reserve more right clearance (~190px),
   keep the tabs on one line, and trim tab padding so "Formulaire" fits without bleed.
   The toggle (right:30, ~122px) keeps a clean gap from the tabs. EN layout unharmed. */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active{
    margin:16px 190px 16px auto!important; max-width:320px!important; white-space:nowrap!important;
  }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-tabs.is-active .fz-tab{
    padding:7px 11px!important; white-space:nowrap!important;
  }
}

/* v0.49.40 — MOBILE FORM LAYOUT BREAK (Wali, real 🔴 my panel flagged but I wrongly demoted):
   the desktop "concierge route-line" form design (global rules ~2163-2206) leaked onto phones —
   the vertical Trip/You/Confirm rail stacked cramped top-left with a stray route line, AND
   .fz-form-body got padding-left:52px so the fields/heading/CTA were shoved right with uneven
   L/R margins. On mobile the "STEP n of m · LABEL" eyebrow already carries progress, so kill the
   rail and give the body even full-width padding. (Desktop ≥921 route-line design untouched.) */
@media(max-width:920px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-stage-rail{ display:none!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-panel-form .fz-form-body{
    padding:16px 18px 20px!important; max-width:none!important; margin:0!important; width:100%!important;
  }
}

/* v0.49.56 — a11y: form-control tap targets >=44px on touch viewports (mobile-perfect; desktop reference untouched) */
@media (max-width:600px){
#gyl-fizza-root .fz-tab,
#gyl-fizza-root .fz-edit-cta,
#gyl-fizza-root .fzc-seg-btn,
#gyl-fizza-root .fz-chip,
#gyl-fizza-root .fz-form-body button.on{min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
#gyl-fizza-root .fz-counter button,
#gyl-fizza-root .gyl-counter button,
#gyl-fizza-root .gyl-smart-bar button{min-height:44px!important;min-width:44px!important}
#gyl-fizza-root .fz-lang button,
#gyl-fizza-root button[data-l]{min-height:44px!important;min-width:44px!important;transform:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
}

/* v0.49.61 — REVERTED the v0.49.58/.59 panel+root display overrides: they forced
   display:flex on every panel then hid non-active ones, which hid the quote form's
   fields (the compact quote panel isn't marked .is-active on load) — a regression that
   left only the Chat/Voice/Quote tabs with an empty body. The ONLY thing we cap now is
   the chat thread, so a long conversation scrolls internally instead of growing the
   hero. Panel show/hide is left to the base CSS (.fz-panel / .is-active / .fzc-quote-panel). */
#gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-thread,
#gyl-fizza-root.fz-compact .fz-chat-thread{
  max-height:min(46vh,340px)!important; overflow-y:auto!important;
}
@media (max-width:600px){
  #gyl-fizza-root.fz-theme-clean.fz-compact .fz-chat-thread,
  #gyl-fizza-root.fz-compact .fz-chat-thread{ max-height:56vh!important; }
}

/* === v0.49.81 reservation split polish (Wali 2026-07-01): crisp avatar dot + fill right-column dead space === */
@media(min-width:921px){
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-av{ overflow:visible!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) .fz-rsv-head .fz-greeter-dot{
    right:3px!important; bottom:3px!important; width:15px!important; height:15px!important;
    border:3px solid #15120f!important; box-shadow:0 0 0 1.5px rgba(21,122,58,.55), 0 0 9px rgba(21,122,58,.6)!important; z-index:3!important; }
  /* fill the empty cream space: the 3 choice rows grow to meet the dark panel's height */
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact){ min-height:600px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid{ padding:22px 40px 40px!important; gap:16px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card{
    min-height:130px!important; padding:22px 24px!important; gap:22px!important; align-content:center!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card h3{ font-size:20px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card .fz-blurb{ font-size:13.5px!important; line-height:1.5!important; margin:5px 0 0!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card .fz-icon-wrap{ width:58px!important; height:58px!important; }
  #gyl-fizza-root.fz-theme-clean:not(.fz-compact) #fz-chooser-grid .fz-card .fz-icon-svg{ width:30px!important; height:30px!important; }
}
/* END v0.49.81 === */

/* === v0.50.26 — booking-system e2e audit fixes (2026-07-04) ===
   1) Mobile icon-over-text: a sitewide mobile input rule (16px-font/44px-tap fix)
      overrides the compact quote fields' 39px text inset, stamping the field icon
      over the first characters at ≤~920px. Re-assert the inset unconditionally.
   2) Trust note wrapped with an orphaned word on 390px.
   3) Sub-44px controls (trip-ledger Edit chip, EN/FR pills): expand the tap area
      without changing the visual size. */
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-fld input{ padding-left:39px !important; }
#gyl-fizza-root.fz-theme-clean.fz-compact .fzc-note{ text-wrap:balance; }
#gyl-fizza-root .fz-edit-cta, #gyl-fizza-root .fz-lang button, #gyl-fizza-root .fz-counter button, #gyl-fizza-root .gyl-counter button{ position:relative; }
#gyl-fizza-root .fz-edit-cta::after, #gyl-fizza-root .fz-lang button::after, #gyl-fizza-root .fz-counter button::after, #gyl-fizza-root .gyl-counter button::after{ content:""; position:absolute; inset:-11px; }
