/* Scoped AI SMS assistant animation for the homepage hero card.
   All selectors are under .asa-sms (or html[data-theme="light"] .asa-sms).
   Keyframe names are prefixed. Does not restyle the rest of the site. */
.dash.asa-sms{
  --asa-sms-panel:#121316;
  --asa-sms-line:#24262b;
  --asa-sms-chrome:#16171a;
  --asa-sms-dot:#3a3c41;
  --asa-sms-ink:#eef0f2;
  --asa-sms-muted:#9a9ea6;
  --asa-sms-green:#c5e86a;
  --asa-sms-green2:#c5e86a;
  --asa-sms-lime:rgba(182,255,46,.14);
  --asa-sms-lime-dot:#B6FF2E;
  --asa-sms-bubble:#1d1f23;
  --asa-sms-ai-ink:#eef0f2;
  --asa-sms-ai-meta:#c5e86a;
  --asa-sms-book-bg:#16181c;
  --asa-sms-book-line:rgba(182,255,46,.28);
  --asa-sms-divider-bg:#1a1c20;
  --asa-sms-replay-bg:#16171a;
  color:var(--asa-sms-ink);
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
html[data-theme="light"] .dash.asa-sms{
  --asa-sms-panel:#F7F6F2;
  --asa-sms-line:#E2DED5;
  --asa-sms-chrome:#F7F6F2;
  --asa-sms-dot:#C9C4B8;
  --asa-sms-ink:#14161A;
  --asa-sms-muted:#4A4F57;
  --asa-sms-green:#0F5C2E;
  --asa-sms-green2:#0F5C2E;
  --asa-sms-lime:#E8F7C8;
  --asa-sms-lime-dot:#B6FF2E;
  --asa-sms-bubble:#EFEDE8;
  --asa-sms-ai-ink:#14161A;
  --asa-sms-ai-meta:#0F5C2E;
  --asa-sms-book-bg:#FFFFFF;
  --asa-sms-book-line:#E2DED5;
  --asa-sms-divider-bg:#EFEDE8;
  --asa-sms-replay-bg:#FFFFFF;
  color:#14161A;
}
.asa-sms-sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.asa-sms-chrome{
  height:36px;background:var(--asa-sms-chrome);border:1px solid var(--asa-sms-line);
  border-radius:14px;display:flex;align-items:center;gap:7px;padding:0 14px;margin-bottom:14px;
}
.asa-sms-chrome i{width:12px;height:12px;border-radius:50%;background:var(--asa-sms-dot);display:block}
.asa-sms-main{
  background:var(--asa-sms-panel);border:1.5px solid var(--asa-sms-line);border-radius:26px;
  padding:22px 22px 18px;
}
.asa-sms-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.asa-sms-live{display:flex;align-items:center;gap:10px;font-weight:600;font-size:17px;color:var(--asa-sms-ink);min-width:0}
.asa-sms-pulse{
  flex:0 0 15px;width:15px;height:15px;border-radius:50%;background:var(--asa-sms-green);
  box-shadow:0 0 0 3px var(--asa-sms-lime-dot);position:relative;
}
.asa-sms-pulse::after{
  content:"";position:absolute;inset:-3px;border-radius:50%;
  border:3px solid var(--asa-sms-lime-dot);animation:asa-sms-ring 1.8s ease-out infinite;
}
@keyframes asa-sms-ring{from{transform:scale(1);opacity:.9}to{transform:scale(2.1);opacity:0}}
.asa-sms-num{color:var(--asa-sms-muted);font-size:14px;white-space:nowrap;flex:0 1 auto}
.asa-sms-wave{display:flex;align-items:flex-end;gap:4px;height:34px;margin:2px 0 14px}
.asa-sms-wave span{
  width:4px;border-radius:3px;background:var(--asa-sms-lime-dot);
  height:34px;transform-origin:center bottom;transform:scaleY(.3);
  display:block;flex:0 0 4px;
}
html[data-theme="light"] .asa-sms-wave span{background:var(--asa-sms-green)}
.asa-sms-thread{
  height:330px;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth;
  display:flex;flex-direction:column;gap:10px;padding:4px 2px 6px;
  scrollbar-width:none;
}
.asa-sms-thread::-webkit-scrollbar{display:none}
.asa-sms-msg{
  max-width:78%;padding:12px 16px;border-radius:18px;font-size:15px;line-height:1.5;
  opacity:0;transform:translateY(10px) scale(.98);
  animation:asa-sms-pop .38s cubic-bezier(.2,.8,.2,1) forwards;
  word-wrap:break-word;overflow-wrap:anywhere;
}
@keyframes asa-sms-pop{to{opacity:1;transform:none}}
.asa-sms-in{
  align-self:flex-start;background:var(--asa-sms-bubble);color:var(--asa-sms-ink);
  border:1px solid var(--asa-sms-line);border-bottom-left-radius:6px;
}
.asa-sms-out{
  align-self:flex-end;background:var(--asa-sms-lime);color:var(--asa-sms-ai-ink);
  border-bottom-right-radius:6px;
}
.asa-sms-meta{font-size:11px;color:var(--asa-sms-muted);margin-top:4px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.asa-sms-out .asa-sms-meta{justify-content:flex-end;color:var(--asa-sms-ai-meta)}
.asa-sms-meta .asa-sms-ai{font-weight:600;letter-spacing:.02em}
.asa-sms-divider{
  align-self:center;font-size:12px;color:var(--asa-sms-muted);padding:4px 10px;
  border-radius:999px;background:var(--asa-sms-divider-bg);opacity:0;animation:asa-sms-pop .35s forwards;
  text-align:center;
}
.asa-sms-typing{
  align-self:flex-end;background:var(--asa-sms-lime);border-radius:18px;border-bottom-right-radius:6px;
  padding:13px 16px;display:flex;gap:5px;opacity:0;animation:asa-sms-pop .25s forwards;
}
.asa-sms-typing.asa-sms-left{
  align-self:flex-start;background:var(--asa-sms-bubble);border:1px solid var(--asa-sms-line);
  border-radius:18px;border-bottom-left-radius:6px;
}
.asa-sms-typing b{
  width:7px;height:7px;border-radius:50%;background:var(--asa-sms-ai-meta);opacity:.4;
  animation:asa-sms-blink 1s infinite;display:block;
}
.asa-sms-typing.asa-sms-left b{background:var(--asa-sms-muted)}
.asa-sms-typing b:nth-child(2){animation-delay:.15s}
.asa-sms-typing b:nth-child(3){animation-delay:.3s}
@keyframes asa-sms-blink{50%{opacity:1;transform:translateY(-2px)}}
.asa-sms-booking{
  align-self:flex-end;width:78%;background:var(--asa-sms-book-bg);border:1.5px solid var(--asa-sms-book-line);
  border-radius:16px;padding:12px 14px;font-size:13px;opacity:0;animation:asa-sms-pop .4s forwards;
  display:grid;grid-template-columns:auto 1fr;gap:4px 12px;color:var(--asa-sms-ink);margin:0;
}
.asa-sms-booking .asa-sms-bt{grid-column:1/-1;font-weight:600;color:var(--asa-sms-green);font-size:13px;margin-bottom:4px}
.asa-sms-booking dt{color:var(--asa-sms-muted);font-weight:400}
.asa-sms-booking dd{font-weight:500;margin:0}
.asa-sms-status{
  min-height:26px;margin-top:12px;color:var(--asa-sms-green2);font-size:16px;font-weight:500;
  display:flex;align-items:center;gap:8px;
}
.asa-sms-status span{opacity:0;transform:translateY(4px);transition:transform .4s ease,opacity .4s ease}
.asa-sms-status.asa-sms-show span{opacity:1;transform:none}
.asa-sms-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.asa-sms-tile{
  position:relative;background:var(--asa-sms-panel);border:1.5px solid var(--asa-sms-line);
  border-radius:20px;padding:16px 16px 14px;overflow:hidden;min-width:0;
}
.asa-sms-tile .asa-sms-k{font-size:13px;color:var(--asa-sms-muted);margin-bottom:10px}
.asa-sms-tile .asa-sms-v{
  font-family:Michroma,"Noto Sans TC",sans-serif;font-size:21px;letter-spacing:.01em;color:var(--asa-sms-ink);
  display:flex;align-items:baseline;gap:4px;
}
.asa-sms-tile .asa-sms-v small{font-family:Inter,"Noto Sans TC",sans-serif;font-size:13px;color:var(--asa-sms-green2)}
.asa-sms-tile.asa-sms-flash::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:var(--asa-sms-lime);opacity:0;animation:asa-sms-flash .7s ease;
}
@keyframes asa-sms-flash{30%{opacity:.85}}
.asa-sms-foot{display:flex;justify-content:center;margin-top:16px}
.asa-sms-replay{
  font:500 13px Inter,"Noto Sans TC",system-ui,sans-serif;color:var(--asa-sms-green);
  background:var(--asa-sms-replay-bg);border:1.5px solid var(--asa-sms-line);border-radius:999px;
  padding:8px 16px;cursor:pointer;appearance:none;-webkit-appearance:none;
}
.asa-sms-replay:hover{border-color:var(--asa-sms-book-line)}
.asa-sms-replay:focus-visible{outline:2px solid var(--asa-sms-green);outline-offset:2px}
@media (max-width:880px){
  .asa-sms-main{padding:14px 14px 12px}
  .asa-sms-live{font-size:16px}
  .asa-sms-thread{height:210px}
  .asa-sms-wave{height:28px;margin:0 0 10px}
  .asa-sms-wave span{height:28px}
  .asa-sms-chrome{height:30px;margin-bottom:10px}
  .asa-sms-status{font-size:14px;margin-top:8px;min-height:22px}
  .asa-sms-foot{margin-top:10px}
  .asa-sms-head{margin-bottom:10px}
}
@media (max-width:560px){
  /* Keep replay clear of the fixed chat FAB on small screens. */
  .asa-sms-foot{padding-right:56px}
}
@media (max-width:520px){
  .asa-sms-tiles{grid-template-columns:1fr 1fr;gap:10px}
  .asa-sms-num{font-size:12px;white-space:normal;text-align:right}
  .asa-sms-msg{font-size:14px;max-width:85%}
  .asa-sms-booking{width:85%}
  .asa-sms-thread{height:280px}
  .asa-sms-head{flex-wrap:wrap;gap:8px}
  .asa-sms-status{font-size:14px}
  .hero .dash.asa-sms{margin-bottom:8px}
}
@media (max-width:360px){
  .asa-sms-tiles{grid-template-columns:1fr 1fr;gap:8px}
  .asa-sms-tile{padding:12px 10px 10px}
  .asa-sms-tile .asa-sms-k{font-size:12px;margin-bottom:8px}
  .asa-sms-tile .asa-sms-v{font-size:16px}
  .asa-sms-tile .asa-sms-v small{font-size:12px}
  .asa-sms-live{font-size:15px}
  .asa-sms-msg{font-size:13px}
  .asa-sms-main{padding:12px 12px 10px}
  .asa-sms-thread{height:280px}
  .asa-sms-chrome{height:28px;margin-bottom:8px;padding:0 10px}
  .asa-sms-wave{height:24px;margin:0 0 8px}
  .asa-sms-wave span{height:24px}
}
@media (prefers-reduced-motion:reduce){
  .asa-sms-msg,.asa-sms-divider,.asa-sms-booking,.asa-sms-typing{animation-duration:.01s;animation-delay:0s}
  .asa-sms-pulse::after{animation:none;opacity:0}
  .asa-sms-typing b{animation:none}
  .asa-sms-tile.asa-sms-flash::after{animation:none}
  .asa-sms-status span{transition:none}
  .asa-sms-thread{scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:var(--asa-sms-line) transparent}
  .asa-sms-thread::-webkit-scrollbar{display:block;width:6px}
  .asa-sms-thread::-webkit-scrollbar-thumb{background:var(--asa-sms-line);border-radius:3px}
}
