:root{
  /* Brand colours */
  --aea-red:#ff4d4d;
  --aea-silver:#dbdded;
  --aea-black:#0c0b0b;
  --aea-orange:#f98658;
  --aea-pink:#e69ecb;
  --aea-green:#7ba88a;
  --aea-highlight:#eff973;
  /* Tints */
  --aea-silver-light:#f5f7fa;
  --aea-silver-mid:#e8ebf5;
  --aea-pink-light:#f5d9eb;

  /* Typography */
  --aea-font-heading: "Proxima Nova","proxima-nova",Arial,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --aea-font-body: "Proxima Nova","proxima-nova",Arial,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --aea-font-weight-heading: 800;
  --aea-font-weight-body: 500;
  --aea-font-scale: 1; /* user-adjustable text scale */
}

#aea-launcher{
  position:fixed;
  right:calc(1rem + env(safe-area-inset-right));
  bottom:calc(1rem + env(safe-area-inset-bottom));
  padding:0.75rem 1.25rem;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.25em;
  background:var(--aea-red);
  color:var(--aea-black);
  font-family:var(--aea-font-heading);
  font-size:0.875rem;
  font-weight:var(--aea-font-weight-heading);
  white-space:nowrap;
  box-shadow:0 0.5rem 0.5rem rgba(12,11,11,.2);
  cursor:pointer;
  -webkit-user-select:none;
  user-select:none;
  transition:transform .2s ease,box-shadow .2s ease;
  border:none;
}

#aea-launcher:hover{
  transform:translateY(-2px);
  filter:brightness(1.02);
}
#aea-launcher:focus-visible{ outline:3px solid rgba(255,77,77,.35); outline-offset:2px; }

/* Reset page background to transparent for iframe embedding */
html,body{min-height:100%;}
body{ background-color: transparent; }

#aea-panel{
  position:fixed;
  right:calc(1rem + env(safe-area-inset-right));
  bottom:calc(4.75rem + env(safe-area-inset-bottom));
  width:clamp(20rem, 92vw, 26rem);
  max-height:min(80vh, 42rem);
  background:#fff;
  border-radius:1.125rem;
  box-shadow:0 1.5rem 1.2rem rgba(12,11,11,.15);
  font:calc(0.875rem * var(--aea-font-scale))/1.5 var(--aea-font-body);
  font-weight: 400;
  -webkit-user-select:none;
  user-select:none;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(12,11,11,.08);
}
#aea-panel[hidden]{
  display:none;
}

/* Panel header - red background with black text and controls */
#aea-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0.75rem 1rem;
  background:var(--aea-red);
  color:var(--aea-black);
  border-radius:1.125rem 1.125rem 0 0;
  flex-shrink:0;
}

.aea-header-title{
  font-family:var(--aea-font-heading);
  font-weight:normal;
  font-size:calc(1rem * var(--aea-font-scale));
  letter-spacing:-0.01em;
  color:var(--aea-black);
}

.aea-header-title strong{
  font-weight:var(--aea-font-weight-heading);
}

.aea-header-controls{
  display:flex;
  align-items:center;
  gap:0.5rem;
}

/* Header zoom controls - pill shape with black text */
#aea-header #aea-zoom{
  display:flex;
  align-items:center;
  background:rgba(255,255,255,0.2);
  border-radius:999px;
  padding:0.125rem;
}

#aea-header #aea-zoom button{
  border:none;
  background:transparent;
  color:var(--aea-black);
  border-radius:999px;
  padding:0.25rem 0.5rem;
  cursor:pointer;
  line-height:1;
  font-weight:700;
  font-size:calc(0.75rem * var(--aea-font-scale));
  transition:background 0.15s ease;
}

#aea-header #aea-zoom button:hover{
  background:rgba(255,255,255,0.15);
}

#aea-header #aea-zoom button:focus-visible{
  outline:2px solid var(--aea-black);
  outline-offset:1px;
}

#aea-header #aea-zoom button:disabled{
  opacity:0.4;
  cursor:not-allowed;
}

/* Divider between A- and A+ */
#aea-header #aea-zoom button:first-child{
  border-right:1px solid rgba(12,11,11,0.3);
  border-radius:999px 0 0 999px;
}
#aea-header #aea-zoom button:last-child{
  border-radius:0 999px 999px 0;
}

#aea-close{
  display:flex;
  align-items:center;
  justify-content:center;
  width:1.75rem;
  height:1.75rem;
  border:none;
  border-radius:50%;
  background:rgba(12,11,11,0.15);
  color:var(--aea-black);
  cursor:pointer;
  transition:background 0.2s ease;
}

#aea-close:hover{
  background:rgba(12,11,11,0.25);
}

#aea-close:focus-visible{
  outline:2px solid var(--aea-black);
  outline-offset:2px;
}

/* Collapsible welcome banner */
#aea-welcome{
  background:var(--aea-silver-light);
  border-bottom:1px solid var(--aea-silver);
  flex-shrink:0;
}

#aea-welcome-toggle{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:0.5rem;
  width:100%;
  padding:0.875rem 1rem;
  border:none;
  background:transparent;
  color:var(--aea-black);
  text-align:left;
  cursor:pointer;
  font:inherit;
  font-size:calc(0.875rem * var(--aea-font-scale));
  line-height:1.5;
}

#aea-welcome-toggle:hover{
  background:rgba(12,11,11,0.02);
}

#aea-welcome-toggle:focus-visible{
  outline:2px solid var(--aea-red);
  outline-offset:-2px;
}

.aea-welcome-summary{
  flex:1;
}

.aea-welcome-summary mark{
  background:var(--aea-highlight);
  color:var(--aea-black);
  padding:0.0625rem 0.25rem;
  border-radius:2px;
  font-weight:700;
}

.aea-welcome-more{
  text-decoration:underline;
  text-underline-offset:2px;
  margin-left:0.25rem;
  white-space:nowrap;
}

/* Hide "Learn more" when expanded */
#aea-welcome-toggle[aria-expanded="true"] .aea-welcome-more{
  display:none;
}

.aea-welcome-chevron{
  flex-shrink:0;
  margin-top:0.125rem;
  transition:transform 0.2s ease;
}

#aea-welcome-toggle[aria-expanded="true"] .aea-welcome-chevron{
  transform:rotate(180deg);
}

#aea-welcome-details{
  padding:0 1rem 1rem;
  display:flex;
  flex-direction:column;
  gap:0.625rem;
  border-top:1px solid var(--aea-silver);
  margin-top:-1px;
  padding-top:0.875rem;
}

#aea-welcome-details[hidden]{
  display:none;
}

.aea-welcome-disclaimer{
  margin:0;
  font-size:calc(0.8125rem * var(--aea-font-scale));
  color:#3a3a3a; /* WCAG AA 4.5:1+ on #f5f7fa */
}

.aea-welcome-cta-label{
  margin:0.5rem 0 0;
  font-size:calc(0.875rem * var(--aea-font-scale));
  color:var(--aea-black);
  font-weight:500;
}

/* Nurse callback button inside welcome */
#aea-welcome #aea-cta-nurse{
  align-self:flex-start;
  border:none;
  background:var(--aea-red);
  color:var(--aea-black);
  padding:0.5rem 1rem;
  border-radius:999px;
  font-weight:700;
  font-family:var(--aea-font-body);
  font-size:calc(0.875rem * var(--aea-font-scale));
  cursor:pointer;
  transition:opacity 0.15s ease;
}

#aea-welcome #aea-cta-nurse:hover{
  opacity:0.9;
}

#aea-welcome #aea-cta-nurse:focus-visible{
  outline:3px solid rgba(255,77,77,0.5);
  outline-offset:2px;
}

.aea-welcome-availability{
  margin:0;
  font-size:calc(0.75rem * var(--aea-font-scale));
  color:#4a4a4a; /* WCAG AA 4.5:1+ on #f5f7fa */
}

#aea-welcome #aea-forget{
  align-self:flex-start;
  font-size:calc(0.75rem * var(--aea-font-scale));
  color:#4a4a4a; /* WCAG AA 4.5:1+ on #f5f7fa */
  text-decoration:underline;
  text-underline-offset:2px;
  margin-top:0.25rem;
  /* Button reset for semantic button element */
  background:transparent;
  border:none;
  cursor:pointer;
  font-family:inherit;
  padding:0.25rem 0.5rem;
}

#aea-welcome #aea-forget:hover{
  color:#333;
}

#aea-welcome #aea-forget:focus-visible{
  outline:2px solid var(--aea-black);
  outline-offset:2px;
  border-radius:2px;
}

/* Messages area */
#aea-messages{
  padding:1rem;
  overflow:auto;
  flex:1 1 auto;
  min-height:0;
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
}

/* Input form */
#aea-form{
  display:flex;
  align-items:center;
  gap:0.5rem;
  padding:0.75rem;
  border-top:1px solid var(--aea-silver);
  background:var(--aea-silver-light);
  min-width:0;
}

#aea-input{
  flex:1 1 auto;
  min-width:0;
  padding:0.625rem 1rem;
  border-radius:999px;
  border:1px solid var(--aea-silver);
  background:#fff;
  outline:0;
  font:inherit;
  transition:border .2s ease,box-shadow .2s ease;
}
#aea-input:focus{
  border-color:var(--aea-red);
  box-shadow:0 0 0 0.1875rem rgba(255,77,77,.18);
}

#aea-submit{
  flex-shrink:0;
  width:2.5rem;
  height:2.5rem;
  border-radius:50%;
  border:none;
  background:var(--aea-red);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease,opacity .2s ease;
  padding:0;
}
#aea-submit:hover:not(:disabled){
  background:#ff6363;
  transform:translateY(-1px);
}
#aea-submit:focus-visible{
  outline:3px solid rgba(255,77,77,.35);
  outline-offset:2px;
}
#aea-submit:disabled{
  background:rgba(12,11,11,.12);
  color:rgba(12,11,11,.3);
  cursor:not-allowed;
  opacity:.6;
}

/* Emergency contacts footer - simplified and smaller */
#aea-emergency{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:0.375rem;
  padding:0.375rem 1rem;
  background:var(--aea-silver-mid);
  color:#4a4a4a; /* WCAG AA compliant */
  font-size:calc(0.6875rem * var(--aea-font-scale));
  border-radius:0 0 1.125rem 1.125rem;
}
#aea-emergency a{
  color:var(--aea-black);
  text-decoration:underline;
  text-underline-offset:2px;
  font-weight:600;
}
#aea-emergency a:hover{
  color:var(--aea-red);
}
#aea-emergency a:focus-visible{
  outline:2px solid var(--aea-black);
  outline-offset:2px;
  border-radius:2px;
}
.aea-emergency-label{
  margin-left:0.25rem;
  font-weight:400;
}

/* Message bubbles - SWAPPED: user=silver, bot=pink */
.aea-message{display:flex;}
.aea-message--you{justify-content:flex-end;}
.aea-message--assistant{
  justify-content:flex-start;
  flex-direction:column;
  align-items:flex-start;
}

.aea-bubble{
  max-width:85%;
  padding:0.75rem 1rem;
  border-radius:1.125rem;
  font-size:calc(0.875rem * var(--aea-font-scale));
  line-height:1.6;
  box-shadow:0 0.5rem 1rem rgba(12,11,11,.06);
  color:var(--aea-black);
}

/* Bot messages - Pink tint */
.aea-message--assistant .aea-bubble{
  background:var(--aea-pink-light);
  border-radius:1.125rem 1.125rem 1.125rem 0.25rem;
}

/* User messages - Silver */
.aea-message--you .aea-bubble{
  background:var(--aea-silver);
  border-radius:1.125rem 1.125rem 0.25rem 1.125rem;
}

.aea-bubble p{margin:0;}
.aea-bubble p + p{margin-top:12px;}
.aea-bubble h1,.aea-bubble h2,.aea-bubble h3,.aea-bubble h4,.aea-bubble h5,.aea-bubble h6{margin:0 0 8px 0;line-height:1.3;font-weight:800;color:var(--aea-black);font-family:var(--aea-font-heading);}
.aea-bubble h1{font-size:calc(1.125rem * var(--aea-font-scale));}
.aea-bubble h2{font-size:calc(1.0625rem * var(--aea-font-scale));}
.aea-bubble h3{font-size:calc(1rem * var(--aea-font-scale));}
.aea-bubble h4{font-size:calc(0.9375rem * var(--aea-font-scale));}
.aea-bubble h5{font-size:calc(0.875rem * var(--aea-font-scale));}
.aea-bubble h6{font-size:calc(0.8125rem * var(--aea-font-scale));}
.aea-bubble ul,
.aea-bubble ol{margin:0 0 0.625rem 1.25rem;padding:0;}
.aea-bubble li{margin:0.25rem 0;}
.aea-bubble ul{list-style: none; margin-left: 0;}
.aea-bubble ul li{position:relative; padding-left: 1.125rem;}
.aea-bubble ul li::before{content: "›"; position:absolute; left:0; top:0; color: var(--aea-black);}
.aea-bubble a{color:var(--aea-red);text-decoration:underline;font-weight:600;word-break:break-word;}
.aea-bubble code{font-family:"SFMono-Regular",Consolas,monospace;padding:2px 4px;background:rgba(12,11,11,.06);border-radius:4px;color:var(--aea-black);}
.aea-bubble mark{
  background-color: var(--aea-highlight);
  color: var(--aea-black);
  padding: 0.125rem 0.25rem;
  border-radius: 2px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.aea-bubble blockquote{margin:0 0 0.625rem 0; padding:0.5rem 0.75rem; border-left:0.25rem solid var(--aea-black); background: rgba(12,11,11,.04); border-radius: 4px;}
.aea-bubble hr{border:0; border-top:1px solid rgba(12,11,11,.15); margin:0.625rem 0;}

/* AI Generated label for assistant messages */
.aea-ai-label{
  display:inline-block;
  font-size:calc(0.625rem * var(--aea-font-scale));
  color:var(--aea-black); /* WCAG 2 AA compliant contrast */
  background:rgba(12,11,11,0.08);
  padding:0.125rem 0.5rem;
  border-radius:999px;
  margin-bottom:0.375rem;
  font-weight:600;
  letter-spacing:0.02em;
}

/* Action buttons in messages */
.aea-actions{margin-top:0.625rem;display:flex;flex-wrap:wrap;gap:0.5rem;}
.aea-action{border:0;border-radius:1rem;padding:0.5rem 0.875rem;background:var(--aea-black);color:#fff;font-weight:700;font-family:var(--aea-font-body);cursor:pointer;font-size:calc(0.8125rem * var(--aea-font-scale));transition:opacity .15s ease;}
.aea-action:hover:not(:disabled){opacity:0.85;}
.aea-action:disabled{opacity:.5;cursor:not-allowed;}

/* Quick-reply chips (shown after welcome message) */
.aea-chips{
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  padding:0.5rem 0;
  justify-content:flex-start;
}

.aea-chip{
  display:inline-flex;
  align-items:center;
  gap:0.375rem;
  padding:0.5rem 0.875rem;
  border:none;
  border-radius:999px;
  background:var(--aea-orange);
  color:var(--aea-black);
  font-family:var(--aea-font-body);
  font-weight:600;
  font-size:calc(0.8125rem * var(--aea-font-scale));
  cursor:pointer;
  box-shadow:0 4px 12px rgba(249,134,88,0.25);
  transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.aea-chip:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(249,134,88,0.35);
  background:#fa9a6e;
}

.aea-chip:focus-visible{
  outline:3px solid rgba(249,134,88,0.5);
  outline-offset:2px;
}

.aea-chip:disabled{
  opacity:0.5;
  cursor:not-allowed;
  transform:none;
}

/* Chip entrance animation */
@keyframes aea-chip-enter{
  from{
    opacity:0;
    transform:translateY(8px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.aea-chip{
  animation:aea-chip-enter 0.3s ease forwards;
}

.aea-chip:nth-child(1){ animation-delay:0.1s; opacity:0; }
.aea-chip:nth-child(2){ animation-delay:0.2s; opacity:0; }
.aea-chip:nth-child(3){ animation-delay:0.3s; opacity:0; }
.aea-chip:nth-child(4){ animation-delay:0.4s; opacity:0; }

/* Loading indicator */
.aea-loading{
  display:none;
  align-self:flex-start;
}
.aea-loading.is-visible{display:flex;}
.aea-loading .aea-bubble{background:var(--aea-pink-light);}
.aea-typing { display: flex; gap: 6px; align-items: center; }
.aea-typing__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--aea-black);
  opacity: .35;
  animation: aea-typing-bounce 1.2s infinite ease-in-out;
}
.aea-typing__dot:nth-child(2) { animation-delay: .15s; }
.aea-typing__dot:nth-child(3) { animation-delay: .3s; }
@keyframes aea-typing-bounce{
  0%, 80%, 100% { transform: translateY(0); opacity:.35; }
  40% { transform: translateY(-4px); opacity:.9; }
}

/* Nurse escalation state indicator */
#aea-panel[data-nurse-status="awaiting_name"],
#aea-panel[data-nurse-status="awaiting_contact"],
#aea-panel[data-nurse-status="awaiting_consent"],
#aea-panel[data-nurse-status="ready_to_dispatch"]{
  border-color:var(--aea-pink);
  box-shadow:0 26px 52px rgba(230,158,203,.25);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .aea-typing__dot { animation: none !important; opacity: .6; }
  .aea-chip { animation: none !important; opacity: 1 !important; }
  .aea-welcome-chevron { transition: none !important; }
  #aea-welcome-toggle[aria-expanded="true"] .aea-welcome-chevron { transform: none; }
  #aea-messages { scroll-behavior: auto; }

  #aea-launcher,
  #aea-cta-nurse,
  .aea-action,
  .aea-chip,
  #aea-input,
  #aea-submit,
  #aea-close {
    transition: none !important;
  }
  #aea-launcher:hover { transform: none; box-shadow: 0 0.5rem 0.5rem rgba(12,11,11,.2); filter: none; }
  .aea-action:hover:not(:disabled) { transform: none; }
  .aea-chip:hover { transform: none; box-shadow: 0 4px 12px rgba(249,134,88,0.25); }
  #aea-submit:hover:not(:disabled) { transform: none; }

  #aea-panel { box-shadow: 0 1rem 1rem rgba(12,11,11,.12); }
  #aea-launcher { box-shadow: 0 0.375rem 0.375rem rgba(12,11,11,.15); }
  .aea-bubble { box-shadow: 0 0.375rem 0.75rem rgba(12,11,11,.04); }
  .aea-chip { box-shadow: 0 0.25rem 0.5rem rgba(249,134,88,.2); }
}

/* Narrow viewport tweaks */
@media (max-width: 360px) {
  #aea-panel { width: calc(100vw - 2rem - env(safe-area-inset-right) - env(safe-area-inset-left)); right: calc(1rem + env(safe-area-inset-right)); }
  #aea-messages { padding: 0.75rem; }
  #aea-form { padding: 0.625rem 0.75rem; }
  .aea-bubble { max-width: 100%; }
  #aea-emergency { padding: 0.25rem 0.625rem; gap: 0.25rem; }
  #aea-welcome-toggle { padding: 0.75rem; }
  #aea-welcome-details { padding: 0 0.75rem 0.75rem; }
}

/* Screen-reader only utility */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Feedback buttons (thumbs up/down) */
.aea-feedback {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.5rem;
  padding-left: 0.25rem;
}

.aea-feedback-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--aea-red);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.aea-feedback-btn:hover:not(:disabled) {
  background: rgba(255, 77, 77, 0.1);
  color: var(--aea-red);
  transform: scale(1.1);
}

.aea-feedback-btn:focus-visible {
  outline: 2px solid var(--aea-red);
  outline-offset: 2px;
}

.aea-feedback-btn:disabled {
  cursor: default;
  opacity: 0.5;
}

.aea-feedback-btn--selected {
  color: var(--aea-green);
  opacity: 1 !important;
}

.aea-feedback-btn--selected:disabled {
  opacity: 1 !important;
}

.aea-feedback-thanks {
  font-size: calc(0.6875rem * var(--aea-font-scale));
  color: var(--aea-green);
  font-weight: 600;
  margin-left: 0.25rem;
  animation: aea-feedback-fade-in 0.2s ease;
}

@keyframes aea-feedback-fade-in {
  from {
    opacity: 0;
    transform: translateX(-4px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Reduced motion for feedback */
@media (prefers-reduced-motion: reduce) {
  .aea-feedback-btn {
    transition: none !important;
  }
  .aea-feedback-btn:hover:not(:disabled) {
    transform: none;
  }
  .aea-feedback-thanks {
    animation: none !important;
  }
}

/* ============================================================================
   END-OF-CONVERSATION SURVEY
   ============================================================================ */

/* Survey prompt (inline in messages) */
.aea-survey-prompt {
  background: var(--aea-silver-light);
  border: 1px solid var(--aea-silver);
  border-radius: 1rem;
  padding: 1rem;
  margin-top: 0.5rem;
  text-align: center;
}

.aea-survey-prompt p {
  margin: 0 0 0.75rem;
  font-size: calc(0.875rem * var(--aea-font-scale));
  color: var(--aea-black);
}

.aea-survey-prompt-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  flex-wrap: wrap;
}

.aea-survey-prompt-btn {
  border: none;
  border-radius: 999px;
  padding: 0.5rem 1rem;
  font-family: var(--aea-font-body);
  font-size: calc(0.8125rem * var(--aea-font-scale));
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}

.aea-survey-prompt-btn--primary {
  background: var(--aea-red);
  color: var(--aea-black);
}

.aea-survey-prompt-btn:not(.aea-survey-prompt-btn--primary) {
  background: transparent;
  color: var(--aea-black);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.aea-survey-prompt-btn:hover {
  transform: translateY(-1px);
}

.aea-survey-prompt-btn--primary:hover {
  background: #ff6363;
}

.aea-survey-prompt-btn:focus-visible {
  outline: 2px solid var(--aea-red);
  outline-offset: 2px;
}

/* Survey modal overlay */
.aea-survey-overlay {
  position: absolute;
  inset: 0;
  background: rgba(12, 11, 11, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  z-index: 100;
  animation: aea-survey-fade-in 0.2s ease;
}

@keyframes aea-survey-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Survey modal */
.aea-survey-modal {
  background: #fff;
  border-radius: 1rem;
  padding: 1.5rem;
  max-width: 100%;
  max-height: 90%;
  overflow-y: auto;
  position: relative;
  box-shadow: 0 1rem 2rem rgba(12, 11, 11, 0.2);
  animation: aea-survey-slide-up 0.2s ease;
}

@keyframes aea-survey-slide-up {
  from {
    opacity: 0;
    transform: translateY(1rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.aea-survey-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 50%;
  background: rgba(12, 11, 11, 0.08);
  color: var(--aea-black);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
}

.aea-survey-close:hover {
  background: rgba(12, 11, 11, 0.15);
}

.aea-survey-close:focus-visible {
  outline: 2px solid var(--aea-red);
  outline-offset: 2px;
}

.aea-survey-modal h2 {
  margin: 0 0 0.5rem;
  font-family: var(--aea-font-heading);
  font-weight: var(--aea-font-weight-heading);
  font-size: calc(1.125rem * var(--aea-font-scale));
  color: var(--aea-black);
  padding-right: 2rem;
}

.aea-survey-intro {
  margin: 0 0 1rem;
  font-size: calc(0.8125rem * var(--aea-font-scale));
  color: #4a4a4a;
}

/* Survey form */
.aea-survey-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.aea-survey-field {
  border: none;
  padding: 0;
  margin: 0;
}

.aea-survey-field legend {
  display: block;
  font-size: calc(0.8125rem * var(--aea-font-scale));
  font-weight: 600;
  color: var(--aea-black);
  margin-bottom: 0.375rem;
}

.aea-survey-field select {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--aea-silver);
  border-radius: 0.5rem;
  background: #fff;
  font-family: var(--aea-font-body);
  font-size: calc(0.875rem * var(--aea-font-scale));
  color: var(--aea-black);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.aea-survey-field select:focus {
  outline: none;
  border-color: var(--aea-red);
  box-shadow: 0 0 0 3px rgba(255, 77, 77, 0.15);
}

/* Star rating */
.aea-survey-rating {
  display: flex;
  gap: 0.25rem;
  justify-content: center;
}

.aea-survey-star {
  cursor: pointer;
}

.aea-survey-star input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.aea-survey-star-icon {
  display: block;
  font-size: calc(1.75rem * var(--aea-font-scale));
  color: var(--aea-silver);
  transition: color 0.15s ease, transform 0.15s ease;
}

.aea-survey-star:hover .aea-survey-star-icon,
.aea-survey-star input:checked ~ .aea-survey-star-icon {
  color: var(--aea-orange);
}

.aea-survey-star:hover .aea-survey-star-icon {
  transform: scale(1.1);
}

.aea-survey-star input:focus-visible ~ .aea-survey-star-icon {
  outline: 2px solid var(--aea-red);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Highlight all stars up to and including the checked one.
 * Uses CSS :has() pseudo-class which requires:
 *   - Firefox 121+ (Dec 2023)
 *   - Safari 15.4+
 *   - Chrome/Edge 105+
 * In older browsers, only the directly checked star is highlighted (graceful degradation). */
@supports selector(:has(input:checked)) {
  .aea-survey-rating:has(.aea-survey-star:nth-child(1) input:checked) .aea-survey-star:nth-child(1) .aea-survey-star-icon,
  .aea-survey-rating:has(.aea-survey-star:nth-child(2) input:checked) .aea-survey-star:nth-child(-n+2) .aea-survey-star-icon,
  .aea-survey-rating:has(.aea-survey-star:nth-child(3) input:checked) .aea-survey-star:nth-child(-n+3) .aea-survey-star-icon,
  .aea-survey-rating:has(.aea-survey-star:nth-child(4) input:checked) .aea-survey-star:nth-child(-n+4) .aea-survey-star-icon,
  .aea-survey-rating:has(.aea-survey-star:nth-child(5) input:checked) .aea-survey-star:nth-child(-n+5) .aea-survey-star-icon {
    color: var(--aea-orange);
  }
}

.aea-survey-rating-labels {
  display: flex;
  justify-content: space-between;
  font-size: calc(0.6875rem * var(--aea-font-scale));
  color: #666;
  margin-top: 0.25rem;
}

/* Survey actions */
.aea-survey-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 0.5rem;
}

.aea-survey-submit {
  border: none;
  border-radius: 999px;
  padding: 0.625rem 1.5rem;
  background: var(--aea-red);
  color: var(--aea-black);
  font-family: var(--aea-font-body);
  font-size: calc(0.875rem * var(--aea-font-scale));
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}

.aea-survey-submit:hover {
  background: #ff6363;
  transform: translateY(-1px);
}

.aea-survey-submit:focus-visible {
  outline: 3px solid rgba(255, 77, 77, 0.35);
  outline-offset: 2px;
}

.aea-survey-skip {
  border: none;
  background: transparent;
  color: #666;
  font-family: var(--aea-font-body);
  font-size: calc(0.8125rem * var(--aea-font-scale));
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
  padding: 0.5rem;
}

.aea-survey-skip:hover {
  color: var(--aea-black);
}

.aea-survey-skip:focus-visible {
  outline: 2px solid var(--aea-black);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Reduced motion for survey */
@media (prefers-reduced-motion: reduce) {
  .aea-survey-overlay,
  .aea-survey-modal {
    animation: none !important;
  }
  .aea-survey-prompt-btn,
  .aea-survey-star-icon,
  .aea-survey-submit {
    transition: none !important;
  }
  .aea-survey-prompt-btn:hover,
  .aea-survey-star:hover .aea-survey-star-icon,
  .aea-survey-submit:hover {
    transform: none;
  }
}
