/* AMS custom chat widget — tokens from the locked design system.
   Uses var(--cta) / var(--cta-text) so each site keeps its CTA (gold / silver / red / steel / oxblood). */

.ams-chat{
  --ams-chat-z: 210;
  position:fixed;
  right:16px;
  bottom:20px;
  z-index:var(--ams-chat-z);
  font-family:var(--font-body, Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
  font-size:1rem;
  line-height:1.6;
  color:var(--text, #F5F5F5);
  pointer-events:none;
}

.ams-chat *{ box-sizing:border-box; }

.ams-chat-launcher,
.ams-chat-panel{
  pointer-events:auto;
}

.ams-chat-launcher{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  padding:0;
  border:1px solid var(--hairline, rgba(197, 202, 208, 0.28));
  border-radius:var(--radius-sm, 4px);
  background:var(--cta, var(--accent));
  color:var(--cta-text, var(--bg));
  cursor:pointer;
  box-shadow:var(--shadow-glow, 0 0 0 1px var(--hairline, rgba(197, 202, 208, 0.28)));
  transition:transform .2s ease, opacity .2s ease, background .15s ease;
}

.ams-chat-launcher:hover,
.ams-chat-launcher:focus-visible{
  transform:translateY(-2px);
  outline:none;
}

.ams-chat-launcher:focus-visible{
  box-shadow:0 0 0 3px var(--accent-soft, rgba(198, 161, 91, .28));
}

.ams-chat-launcher svg{
  width:24px;
  height:24px;
  display:block;
}

.ams-chat.is-open .ams-chat-launcher{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:scale(.96);
}

.ams-chat-panel{
  position:absolute;
  right:0;
  bottom:68px;
  display:flex;
  flex-direction:column;
  width:380px;
  height:520px;
  max-width:calc(100vw - 32px);
  background:var(--surface, #141414);
  color:var(--text, #F5F5F5);
  border:1px solid var(--hairline, rgba(197, 202, 208, 0.28));
  border-radius:var(--radius, 8px);
  box-shadow:var(--shadow, 0 10px 40px rgba(0,0,0,.45)), var(--shadow-glow, 0 0 0 1px var(--hairline, rgba(197, 202, 208, 0.28)));
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  pointer-events:none;
  transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
}

.ams-chat.is-open .ams-chat-panel{
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}

.ams-chat-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px;
  border-bottom:1px solid var(--hairline, rgba(197, 202, 208, 0.28));
  background:var(--bg);
}

.ams-chat-title{
  margin:0;
  font-family:var(--font-head, Outfit, sans-serif);
  font-size:1rem;
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.25;
  color:var(--text, #F5F5F5);
  text-transform:none;
}

.ams-chat-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  padding:0;
  flex-shrink:0;
  border:1px solid var(--border, rgba(255,255,255,0.10));
  border-radius:var(--radius-sm, 4px);
  background:transparent;
  color:var(--muted, #A3A3A3);
  cursor:pointer;
  transition:border-color .15s ease, color .15s ease;
}

.ams-chat-close:hover,
.ams-chat-close:focus-visible{
  color:var(--text, #F5F5F5);
  border-color:var(--accent);
  outline:none;
}

.ams-chat-close svg{
  width:16px;
  height:16px;
  display:block;
}

.ams-chat-log{
  flex:1;
  overflow-y:auto;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
  background:var(--bg);
  -webkit-overflow-scrolling:touch;
}

.ams-chat-msg{
  display:flex;
  max-width:88%;
}

.ams-chat-msg--assistant{ align-self:flex-start; }
.ams-chat-msg--user{ align-self:flex-end; }

.ams-chat-msg-body{
  margin:0;
  padding:10px 12px;
  border-radius:var(--radius, 8px);
  font-size:.95rem;
  line-height:1.55;
  word-wrap:break-word;
  overflow-wrap:anywhere;
}

.ams-chat-msg--assistant .ams-chat-msg-body{
  background:var(--surface, #141414);
  color:var(--text, #F5F5F5);
  border:1px solid var(--border, rgba(255,255,255,0.10));
}

.ams-chat-msg--user .ams-chat-msg-body{
  background:var(--cta, var(--accent));
  color:var(--cta-text, var(--bg));
  border:1px solid transparent;
}

.ams-chat-msg-body a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}

.ams-chat-msg--user .ams-chat-msg-body a{ color:var(--cta-text, var(--bg)); }

.ams-chat-book{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:8px;
  padding:10px 16px;
  border:0;
  border-radius:var(--radius-sm, 4px);
  background:var(--cta, var(--accent));
  color:var(--cta-text, var(--bg));
  font-family:var(--font-body, Inter, sans-serif);
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.02em;
  text-decoration:none;
  cursor:pointer;
  transition:transform .15s ease;
}

.ams-chat-book:hover{ transform:translateY(-2px); }

.ams-chat-typing{
  display:none;
  align-items:center;
  gap:6px;
  align-self:flex-start;
  padding:10px 12px;
  border-radius:var(--radius, 8px);
  background:var(--surface, #141414);
  border:1px solid var(--border, rgba(255,255,255,0.10));
}

.ams-chat-typing.is-on{ display:inline-flex; }

.ams-chat-typing span{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--muted, #A3A3A3);
  animation:ams-chat-dot 1.2s ease-in-out infinite;
}

.ams-chat-typing span:nth-child(2){ animation-delay:.15s; }
.ams-chat-typing span:nth-child(3){ animation-delay:.3s; }

@keyframes ams-chat-dot{
  0%, 80%, 100%{ opacity:.28; transform:translateY(0); }
  40%{ opacity:1; transform:translateY(-3px); }
}

.ams-chat-footer{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 16px;
  background:var(--surface, #141414);
  font-family:var(--font-body, Inter, sans-serif);
  font-size:.8rem;
  font-weight:500;
  line-height:1.4;
  color:var(--muted, #A3A3A3);
}

.ams-chat-footer a{
  color:var(--text, #F5F5F5);
  text-decoration:underline;
  text-underline-offset:2px;
}

.ams-chat-footer a:hover,
.ams-chat-footer a:focus-visible{
  color:var(--accent);
  outline:none;
}

.ams-chat-form{
  display:flex;
  align-items:flex-end;
  gap:8px;
  padding:12px;
  border-top:1px solid var(--hairline, rgba(197, 202, 208, 0.28));
  background:var(--surface, #141414);
}

.ams-chat-input{
  flex:1;
  min-height:40px;
  max-height:96px;
  resize:none;
  padding:8px 12px;
  border:1px solid var(--border, rgba(255,255,255,0.10));
  border-radius:var(--radius-sm, 4px);
  background:var(--bg);
  color:var(--text, #F5F5F5);
  font-family:var(--font-body, Inter, sans-serif);
  font-size:1rem;
  line-height:1.4;
}

.ams-chat-input::placeholder{ color:var(--muted, #A3A3A3); }

.ams-chat-input:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft, rgba(198, 161, 91, .14));
}

.ams-chat-send{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:0 16px;
  border:0;
  border-radius:var(--radius-sm, 4px);
  background:var(--cta, var(--accent));
  color:var(--cta-text, var(--bg));
  font-family:var(--font-body, Inter, sans-serif);
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.02em;
  cursor:pointer;
  transition:transform .15s ease, opacity .15s ease;
}

.ams-chat-send:hover:not(:disabled){ transform:translateY(-2px); }

.ams-chat-send:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
}

.ams-chat-sr{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

@media (max-width: 1120px){
  .ams-chat{
    right:12px;
    bottom:calc(72px + env(safe-area-inset-bottom, 0px) + 12px);
  }

  .ams-chat-panel{
    width:min(400px, calc(100vw - 24px));
    height:min(560px, calc(100dvh - 72px - env(safe-area-inset-bottom, 0px) - 88px));
    bottom:68px;
  }
}

@media (max-width: 480px){
  .ams-chat-panel{
    width:calc(100vw - 24px);
  }
}

@media (prefers-reduced-motion: reduce){
  .ams-chat-launcher,
  .ams-chat-panel,
  .ams-chat-book,
  .ams-chat-send,
  .ams-chat-typing span{
    transition:none;
    animation:none;
  }

  .ams-chat-panel{
    transform:none;
  }
}
