.wmai-root,
.wmai-root * { box-sizing: border-box; }

.wmai-root {
  position: fixed;
  z-index: 2147482000;
  right: max(var(--wmai-edge-desktop, 18px), env(safe-area-inset-right));
  bottom: max(var(--wmai-bottom-desktop, 18px), env(safe-area-inset-bottom));
  color: var(--wmai-text, #3b1712);
  font-family: "Noto Serif TC", "PingFang TC", "Microsoft JhengHei", serif;
}

.wmai-root.wmai-side-left {
  right: auto;
  left: max(var(--wmai-edge-desktop, 18px), env(safe-area-inset-left));
}

.wmai-launcher {
  position: relative;
  display: grid;
  place-items: end center;
  width: var(--wmai-launcher-size, 104px);
  height: var(--wmai-launcher-size, 104px);
  margin-left: auto;
  padding: 0;
  overflow: visible;
  border: 1px solid color-mix(in srgb, var(--wmai-gold) 75%, transparent);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 35%, rgba(216, 173, 92, .26), transparent 53%),
    linear-gradient(145deg, var(--wmai-wine), var(--wmai-wine-deep));
  box-shadow: 0 12px 36px rgba(31, 3, 3, .42), inset 0 0 0 4px rgba(255,255,255,.04);
  cursor: pointer;
  isolation: isolate;
  touch-action: manipulation;
  translate: var(--wmai-drag-x, 0) var(--wmai-drag-y, 0);
  transition: translate .22s ease, transform .24s ease, box-shadow .24s ease;
}

.wmai-can-drag .wmai-launcher { cursor: grab; }
.wmai-root.is-dragging .wmai-launcher { cursor: grabbing; user-select: none; }
.wmai-root.is-dragging .wmai-launcher,
.wmai-root.is-dragging .wmai-greeting { transition: none !important; }
.wmai-root.is-dragging .wmai-launcher img { animation-play-state: paused !important; }

.wmai-launcher::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 7%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 236, 174, .42), rgba(216, 173, 92, .1) 44%, transparent 70%);
  opacity: .55;
  transform: scale(.84);
  transition: opacity .28s ease, transform .28s ease;
}

.wmai-launcher:hover,
.wmai-launcher:focus-visible { transform: translateY(-4px) scale(1.025); box-shadow: 0 16px 40px rgba(31, 3, 3, .52), 0 0 0 3px rgba(216, 173, 92, .25); outline: 0; }
.wmai-mascot-stage { position: absolute; z-index: 2; inset: 0; display: flex; align-items: flex-end; justify-content: center; overflow: visible; pointer-events: none; transform: translate(var(--wmai-mascot-offset-x, 0), var(--wmai-mascot-offset-y, 0)); }
.wmai-launcher img { position: relative; width: var(--wmai-mascot-size, 88px); max-width: none; height: auto; object-fit: contain; object-position: center bottom; pointer-events: none; transform-origin: 50% 86%; filter: drop-shadow(0 8px 8px rgba(23, 2, 2, .36)); will-change: transform, filter; }
.wmai-loop-starlight .wmai-launcher img { animation: wmai-mascot-starlight var(--wmai-loop-duration, 5200ms) cubic-bezier(.42, 0, .3, 1) infinite; }
.wmai-loop-breathe .wmai-launcher img { animation: wmai-mascot-breathe var(--wmai-loop-duration, 5200ms) ease-in-out infinite; }
.wmai-loop-orbit .wmai-launcher img { animation: wmai-mascot-moon-orbit var(--wmai-loop-duration, 5200ms) ease-in-out infinite; }
.wmai-orbit { position: absolute; z-index: 1; inset: -8px; border: 1px dashed rgba(216, 173, 92, .55); border-radius: 50%; animation: wmai-orbit 18s linear infinite; }
.wmai-orbit::before, .wmai-orbit::after { content: "✦"; position: absolute; color: var(--wmai-gold); font-size: 13px; text-shadow: 0 0 8px var(--wmai-gold); }
.wmai-orbit::before { left: 8px; top: 5px; }
.wmai-orbit::after { right: 3px; bottom: 16px; }
.wmai-status-dot { position: absolute; z-index: 3; right: 4px; bottom: 8px; width: 15px; height: 15px; border: 3px solid var(--wmai-wine-deep); border-radius: 50%; background: #7fc98e; box-shadow: 0 0 10px rgba(127, 201, 142, .75); }

.wmai-greeting {
  position: absolute;
  right: calc(var(--wmai-launcher-size) + 12px);
  bottom: 24px;
  width: max-content;
  max-width: min(260px, calc(100vw - var(--wmai-launcher-size) - 55px));
  padding: 10px 14px;
  border: 1px solid rgba(216, 173, 92, .72);
  border-radius: 14px 14px 3px 14px;
  background: rgba(244, 232, 215, .96);
  color: var(--wmai-text);
  box-shadow: 0 8px 22px rgba(40, 6, 4, .24);
  font-size: 14px;
  line-height: 1.55;
  --wmai-greeting-retract-x: 16px;
  translate: var(--wmai-drag-x, 0) var(--wmai-drag-y, 0);
  transform-origin: right bottom;
  transition: translate .22s ease, opacity .24s ease, transform .24s ease;
}
.wmai-root.is-open .wmai-greeting { opacity: 0; transform: translateY(8px); pointer-events: none; }
.wmai-greeting.is-retracting { opacity: 0; transform: translateX(var(--wmai-greeting-retract-x)) scale(.62); pointer-events: none; }
.wmai-greeting.is-popping { animation: wmai-greeting-pop .46s cubic-bezier(.2,.82,.25,1) both; }
.wmai-side-left .wmai-greeting { right: auto; left: calc(var(--wmai-launcher-size) + 12px); --wmai-greeting-retract-x: -16px; border-radius: 14px 14px 14px 3px; transform-origin: left bottom; }

.wmai-panel {
  position: absolute;
  right: 0;
  bottom: calc(var(--wmai-launcher-size) + 18px);
  display: grid;
  grid-template-rows: auto minmax(180px, 1fr) auto auto;
  width: min(var(--wmai-panel-width, 390px), calc(100vw - 24px));
  height: min(620px, calc(100vh - var(--wmai-launcher-size) - 56px));
  min-height: 430px;
  overflow: hidden;
  border: 1px solid var(--wmai-gold);
  border-radius: 22px 22px 8px 22px;
  background:
    repeating-linear-gradient(6deg, rgba(98, 46, 29, .025) 0 1px, transparent 1px 4px),
    radial-gradient(circle at 20% 12%, rgba(216, 173, 92, .14), transparent 36%),
    var(--wmai-paper);
  box-shadow: 0 26px 80px rgba(32, 3, 2, .5), inset 0 0 50px rgba(121, 50, 28, .05);
  transform-origin: right bottom;
  animation: wmai-panel-in .24s ease both;
}
.wmai-panel[hidden] { display: none; }
.wmai-side-left .wmai-panel { right: auto; left: 0; border-radius: 22px 22px 22px 8px; transform-origin: left bottom; }

.wmai-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 8px; min-height: 68px; padding: 12px 14px; border-bottom: 1px solid rgba(216, 173, 92, .55); color: #fff8e9; background: linear-gradient(135deg, var(--wmai-wine-deep), var(--wmai-wine)); }
.wmai-header-mark { display: grid; place-items: center; width: 37px; height: 37px; border: 1px solid var(--wmai-gold); border-radius: 50%; color: var(--wmai-gold); box-shadow: inset 0 0 16px rgba(216, 173, 92, .18); }
.wmai-header strong, .wmai-header small { display: block; }
.wmai-header strong { font-size: 17px; letter-spacing: .08em; }
.wmai-header small { margin-top: 2px; color: rgba(255, 248, 233, .72); font-family: "PingFang TC", "Microsoft JhengHei", sans-serif; font-size: 11px; letter-spacing: .12em; }
.wmai-close { width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; color: #fff8e9; background: rgba(255,255,255,.08); font: 300 28px/1 sans-serif; cursor: pointer; }
.wmai-close:hover, .wmai-close:focus-visible { background: rgba(216, 173, 92, .22); outline: 1px solid var(--wmai-gold); }

.wmai-messages { overflow-y: auto; overscroll-behavior: contain; padding: 18px 15px 8px; scrollbar-color: rgba(116,39,31,.35) transparent; }
.wmai-message { display: flex; margin: 0 0 12px; }
.wmai-message.is-user { justify-content: flex-end; }
.wmai-bubble { max-width: 86%; padding: 11px 13px; border-radius: 5px 16px 16px 16px; background: rgba(255, 252, 245, .84); border: 1px solid rgba(116,39,31,.13); box-shadow: 0 5px 14px rgba(66,20,13,.07); font-family: "PingFang TC", "Microsoft JhengHei", sans-serif; font-size: 14px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.wmai-message.is-user .wmai-bubble { border-color: rgba(216, 173, 92, .55); border-radius: 16px 5px 16px 16px; color: #fff8eb; background: linear-gradient(135deg, var(--wmai-wine), #8c382b); }
.wmai-bubble.is-thinking { display: inline-flex; gap: 5px; align-items: center; min-width: 62px; color: var(--wmai-wine); }
.wmai-bubble.is-thinking span { width: 6px; height: 6px; border-radius: 50%; background: var(--wmai-gold); animation: wmai-dot 1s ease-in-out infinite; }
.wmai-bubble.is-thinking span:nth-child(2) { animation-delay: .16s; }
.wmai-bubble.is-thinking span:nth-child(3) { animation-delay: .32s; }
.wmai-booking-link { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; color: var(--wmai-wine); font-weight: 700; text-decoration: none; }
.wmai-booking-link:hover { text-decoration: underline; }

.wmai-bubble.has-availability { width: 100%; max-width: 100%; padding: 0; overflow: hidden; white-space: normal; background: rgba(255, 252, 245, .93); }
.wmai-availability-card { padding: 14px; }
.wmai-availability-heading { display: grid; gap: 2px; padding-bottom: 11px; border-bottom: 1px solid rgba(116, 39, 31, .16); }
.wmai-availability-heading strong { color: var(--wmai-wine); font-family: "Noto Serif TC", "PingFang TC", "Microsoft JhengHei", serif; font-size: 15px; letter-spacing: .035em; }
.wmai-availability-heading span { color: rgba(59, 23, 18, .68); font-size: 12px; }
.wmai-choice-list { display: grid; gap: 7px; padding-top: 11px; }
.wmai-choice-list.is-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wmai-choice-button { position: relative; display: grid; gap: 2px; width: 100%; min-height: 48px; padding: 9px 34px 9px 11px; border: 1px solid rgba(116, 39, 31, .2); border-radius: 9px; color: var(--wmai-text); background: linear-gradient(180deg, rgba(255, 253, 248, .82), rgba(216, 173, 92, .09)); font: inherit; line-height: 1.35; text-align: left; cursor: pointer; }
.wmai-choice-button::after { content: "→"; position: absolute; top: 50%; right: 12px; color: var(--wmai-gold); font-size: 15px; transform: translateY(-50%); }
.wmai-choice-button strong { color: var(--wmai-wine); font-size: 13px; font-weight: 700; overflow-wrap: anywhere; }
.wmai-choice-button span { color: rgba(59, 23, 18, .61); font-size: 11px; }
.wmai-choice-button:hover, .wmai-choice-button:focus-visible { border-color: var(--wmai-gold); background: linear-gradient(180deg, rgba(255, 253, 248, .94), rgba(216, 173, 92, .2)); box-shadow: 0 4px 11px rgba(75, 18, 12, .1); outline: 0; }
.wmai-choice-list.is-compact .wmai-choice-button { align-content: center; padding-right: 28px; }
.wmai-slot-month-section[hidden] { display: none; }
.wmai-slot-month-section + .wmai-slot-month-section { margin-top: 9px; }
.wmai-slot-month { display: block; margin: 12px 0 0; padding: 6px 8px; border-radius: 7px; color: var(--wmai-wine); background: rgba(116, 39, 31, .055); font-size: 12px; letter-spacing: .08em; }
.wmai-slot-group { padding: 11px 0 2px; }
.wmai-slot-group + .wmai-slot-group { margin-top: 8px; border-top: 1px dashed rgba(116, 39, 31, .17); }
.wmai-slot-group[hidden] { display: none; }
.wmai-slot-date { display: block; margin-bottom: 7px; color: var(--wmai-text); font-size: 13px; letter-spacing: .025em; }
.wmai-slot-times { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.wmai-slot-time { display: grid; place-items: center; min-height: 35px; padding: 6px 4px; border: 1px solid color-mix(in srgb, var(--wmai-gold) 76%, var(--wmai-wine)); border-radius: 8px; color: var(--wmai-wine); background: linear-gradient(180deg, rgba(216, 173, 92, .17), rgba(255, 252, 245, .56)); font-size: 12px; font-weight: 700; line-height: 1.25; text-align: center; }
.wmai-slot-toggle { width: 100%; margin-top: 12px; padding: 8px 10px; border: 1px solid rgba(116, 39, 31, .2); border-radius: 9px; color: var(--wmai-wine); background: rgba(116, 39, 31, .045); font: 700 12px/1.35 "PingFang TC", "Microsoft JhengHei", sans-serif; cursor: pointer; }
.wmai-slot-toggle:hover, .wmai-slot-toggle:focus-visible { border-color: var(--wmai-gold); background: rgba(216, 173, 92, .15); outline: 0; }
.wmai-availability-note { margin: 12px 0 0; color: rgba(59, 23, 18, .62); font-size: 11px; line-height: 1.55; }
.wmai-availability-card > .wmai-booking-link { display: flex; justify-content: center; width: 100%; margin-top: 11px; padding: 9px 12px; border: 1px solid var(--wmai-gold); border-radius: 9px; color: #fff8eb; background: linear-gradient(135deg, var(--wmai-wine), var(--wmai-wine-deep)); text-decoration: none; }
.wmai-availability-card > .wmai-booking-link:hover, .wmai-availability-card > .wmai-booking-link:focus-visible { background: linear-gradient(135deg, #8c382b, var(--wmai-wine)); box-shadow: 0 5px 13px rgba(75, 18, 12, .2); outline: 0; text-decoration: none; }
.wmai-message.is-structured { animation: wmai-structured-arrive .38s cubic-bezier(.2,.8,.25,1) both; }
.wmai-service-catalog-list { display: grid; gap: 8px; padding-top: 11px; }
.wmai-service-catalog-item { display: grid; gap: 8px; width: 100%; padding: 11px; border: 1px solid rgba(116,39,31,.2); border-radius: 10px; color: var(--wmai-text); background: linear-gradient(180deg, rgba(255,253,248,.9), rgba(216,173,92,.08)); font: inherit; text-align: left; cursor: pointer; }
.wmai-service-catalog-item:hover, .wmai-service-catalog-item:focus-visible { border-color: var(--wmai-gold); background: linear-gradient(180deg, rgba(255,253,248,.98), rgba(216,173,92,.18)); box-shadow: 0 4px 11px rgba(75,18,12,.1); outline: 0; }
.wmai-service-catalog-name { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--wmai-wine); }
.wmai-service-catalog-name strong { font-size: 14px; }
.wmai-service-catalog-name > span { color: var(--wmai-gold); font-size: 16px; }
.wmai-service-variants { display: grid; gap: 4px; }
.wmai-service-variant { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 4px; border-top: 1px dashed rgba(116,39,31,.13); color: rgba(59,23,18,.67); font-size: 11px; }
.wmai-service-variant strong { flex: 0 0 auto; color: var(--wmai-wine); font-size: 11px; }

.wmai-quick { display: flex; gap: 7px; padding: 8px 13px 10px; overflow-x: auto; border-top: 1px solid rgba(116,39,31,.09); }
.wmai-quick button { flex: 0 0 auto; padding: 7px 10px; border: 1px solid rgba(116,39,31,.25); border-radius: 999px; color: var(--wmai-wine); background: rgba(255,255,255,.44); font-size: 12px; cursor: pointer; }
.wmai-quick button:hover { border-color: var(--wmai-gold); background: rgba(216,173,92,.17); }

.wmai-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; padding: 10px 12px; border-top: 1px solid rgba(216,173,92,.5); background: rgba(255,250,240,.58); }
.wmai-form textarea { width: 100%; min-height: 44px; max-height: 110px; resize: none; padding: 11px 13px; border: 1px solid rgba(116,39,31,.28); border-radius: 14px; outline: 0; color: var(--wmai-text); background: rgba(255,255,255,.7); font: 14px/1.5 "PingFang TC", "Microsoft JhengHei", sans-serif; }
.wmai-form textarea:focus { border-color: var(--wmai-gold); box-shadow: 0 0 0 3px rgba(216,173,92,.16); }
.wmai-form button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--wmai-gold); border-radius: 50%; color: #fff8eb; background: var(--wmai-wine); cursor: pointer; }
.wmai-form button:disabled { opacity: .55; cursor: wait; }
.wmai-reset-position { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid rgba(216, 173, 92, .42); border-radius: 50%; color: #fff8e9; background: rgba(255,255,255,.07); font: 20px/1 "PingFang TC", "Microsoft JhengHei", sans-serif; cursor: pointer; }
.wmai-reset-position:hover, .wmai-reset-position:focus-visible { border-color: var(--wmai-gold); background: rgba(216, 173, 92, .2); outline: 0; }

.wmai-root.is-thinking .wmai-launcher { box-shadow: 0 0 0 5px rgba(216,173,92,.16), 0 15px 42px rgba(31,3,3,.5); }
.wmai-root.is-thinking .wmai-orbit { animation-duration: 2.2s; border-style: solid; }
.wmai-root.is-thinking .wmai-launcher img { animation: wmai-mascot-think 1.15s ease-in-out infinite; }
.wmai-root.is-thinking .wmai-launcher::before { opacity: .95; transform: scale(1.14); }
.wmai-root.is-answering .wmai-launcher { animation: wmai-answer-glow .7s ease; }
.wmai-root.is-answering .wmai-launcher img { animation: wmai-mascot-celebrate .9s cubic-bezier(.2,.8,.2,1) both; }
.wmai-root.is-activating .wmai-launcher img { animation: wmai-mascot-wake .82s cubic-bezier(.2,.85,.25,1) both; }
.wmai-no-motion *, .wmai-no-motion *::before, .wmai-no-motion *::after { animation: none !important; transition: none !important; }

@media (hover: hover) and (pointer: fine) {
  .wmai-hover-greet .wmai-launcher:hover img { animation: wmai-mascot-greet .9s ease-in-out infinite alternate; }
  .wmai-hover-twirl .wmai-launcher:hover img { animation: wmai-mascot-twirl .86s cubic-bezier(.2,.75,.25,1) both; }
  .wmai-hover-spark .wmai-launcher:hover img { animation: wmai-mascot-spark .72s ease-in-out infinite alternate; }
  .wmai-launcher:hover::before { opacity: 1; transform: scale(1.12); }
}

@keyframes wmai-mascot-starlight {
  0%, 100% { transform: translate3d(0, 2px, 0) rotate(-1deg) scale(1); filter: drop-shadow(0 8px 8px rgba(23,2,2,.36)) brightness(1); }
  24% { transform: translate3d(-2px, -4px, 0) rotate(1.2deg) scale(1.018); }
  52% { transform: translate3d(1px, -8px, 0) rotate(-.4deg) scale(1.035); filter: drop-shadow(0 13px 10px rgba(23,2,2,.3)) brightness(1.08); }
  78% { transform: translate3d(3px, -3px, 0) rotate(1.1deg) scale(1.012); }
}
@keyframes wmai-mascot-breathe {
  0%, 100% { transform: translateY(1px) scale(1, 1); }
  45% { transform: translateY(-3px) scale(1.025, 1.045); filter: drop-shadow(0 11px 10px rgba(23,2,2,.32)) brightness(1.045); }
  58% { transform: translateY(-3px) scale(1.02, 1.04); }
}
@keyframes wmai-mascot-moon-orbit {
  0%, 100% { transform: translate3d(-3px, 1px, 0) rotate(-2deg) scale(1); }
  25% { transform: translate3d(1px, -7px, 0) rotate(0deg) scale(1.025); }
  50% { transform: translate3d(4px, -2px, 0) rotate(2deg) scale(1.015); }
  75% { transform: translate3d(0, 2px, 0) rotate(.3deg) scale(.995); }
}
@keyframes wmai-mascot-greet {
  0% { transform: translateY(-3px) rotate(-4deg) scale(1.03); }
  55% { transform: translateY(-8px) rotate(5deg) scale(1.1); filter: drop-shadow(0 14px 11px rgba(23,2,2,.3)) brightness(1.1); }
  100% { transform: translateY(-5px) rotate(1deg) scale(1.06); }
}
@keyframes wmai-mascot-twirl {
  0% { transform: translateY(0) rotate(0) scale(1); }
  35% { transform: translateY(-12px) rotate(-10deg) scale(1.08); }
  70% { transform: translateY(-8px) rotate(8deg) scale(1.12); }
  100% { transform: translateY(-4px) rotate(0) scale(1.06); filter: brightness(1.1); }
}
@keyframes wmai-mascot-spark {
  0% { transform: translateY(-2px) scale(1.02); filter: drop-shadow(0 8px 8px rgba(23,2,2,.36)) brightness(1); }
  100% { transform: translateY(-10px) scale(1.12) rotate(2deg); filter: drop-shadow(0 0 14px rgba(255,218,126,.82)) brightness(1.16); }
}
@keyframes wmai-mascot-wake {
  0% { transform: translateY(0) scale(.96) rotate(-3deg); }
  38% { transform: translateY(-15px) scale(1.13) rotate(5deg); }
  68% { transform: translateY(-6px) scale(1.06) rotate(-2deg); }
  100% { transform: translateY(0) scale(1) rotate(0); }
}
@keyframes wmai-mascot-think {
  0%, 100% { transform: translateY(-2px) rotate(-2deg) scale(1.02); }
  50% { transform: translateY(-8px) rotate(3deg) scale(1.075); filter: drop-shadow(0 0 12px rgba(216,173,92,.72)) brightness(1.1); }
}
@keyframes wmai-mascot-celebrate {
  0% { transform: translateY(0) rotate(0) scale(1); }
  32% { transform: translateY(-17px) rotate(-7deg) scale(1.14); }
  58% { transform: translateY(-9px) rotate(8deg) scale(1.1); filter: drop-shadow(0 0 16px rgba(255,221,132,.9)) brightness(1.16); }
  82% { transform: translateY(-5px) rotate(-2deg) scale(1.06); }
  100% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes wmai-orbit { to { transform: rotate(360deg); } }
@keyframes wmai-panel-in { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes wmai-dot { 0%,80%,100% { transform: translateY(0); opacity: .45; } 40% { transform: translateY(-4px); opacity: 1; } }
@keyframes wmai-answer-glow { 50% { filter: brightness(1.13); box-shadow: 0 0 34px rgba(216,173,92,.7); } }
@keyframes wmai-greeting-pop {
  0% { opacity: 0; transform: translateX(var(--wmai-greeting-retract-x)) scale(.62); }
  72% { opacity: 1; transform: translateX(0) scale(1.045); }
  100% { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes wmai-structured-arrive {
  0% { opacity: 0; transform: translateY(10px) scale(.985); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .wmai-root *, .wmai-root *::before, .wmai-root *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (max-width: 767px) {
  .wmai-root { right: max(var(--wmai-edge-mobile, 11px), env(safe-area-inset-right)); bottom: max(var(--wmai-bottom-mobile, 11px), env(safe-area-inset-bottom)); }
  .wmai-root.wmai-side-left { right: auto; left: max(var(--wmai-edge-mobile, 11px), env(safe-area-inset-left)); }
  .wmai-launcher { width: var(--wmai-launcher-mobile-size, 82px); height: var(--wmai-launcher-mobile-size, 82px); }
  .wmai-mascot-stage { transform: translate(var(--wmai-mascot-mobile-offset-x, 0), var(--wmai-mascot-mobile-offset-y, 0)); }
  .wmai-launcher img { width: var(--wmai-mascot-mobile-size, 69px); }
  .wmai-greeting { right: calc(var(--wmai-launcher-mobile-size, 82px) + 12px); bottom: 15px; font-size: 12px; }
  .wmai-side-left .wmai-greeting { right: auto; left: calc(var(--wmai-launcher-mobile-size, 82px) + 12px); }
  .wmai-panel, .wmai-side-left .wmai-panel { position: fixed; right: 0; bottom: 0; left: 0; width: auto; max-width: none; height: min(78dvh, 690px); min-height: 420px; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 20px 20px 0 0; padding-bottom: env(safe-area-inset-bottom); transform-origin: center bottom; }
  .wmai-root.is-open .wmai-launcher { opacity: 0; pointer-events: none; }
  .wmai-bubble { max-width: 91%; }
  .wmai-choice-card.is-service .wmai-choice-list.is-compact { grid-template-columns: 1fr; }
  .wmai-slot-times { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .wmai-panel { width: min(420px, calc(100vw - 42px)); height: min(610px, calc(100vh - 145px)); }
}
