/* AIC Festival Chatbot v6 — production responsive architecture */
#aic-chatbot{
  --aic-gold:#F4A300;
  --aic-gold-deep:#D88900;
  --aic-gold-text:#C97E00;
  --aic-black:#111111;
  --aic-cream:#FFF8EE;
  --aic-border:#E8D7B8;
  --aic-white:#fff;
  --aic-text:#222;
  --aic-green:#4CAF50;
  position:fixed;
  inset:0;
  z-index:99999;
  pointer-events:none;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--aic-text);
}
#aic-chatbot *{box-sizing:border-box;}
.aic-chat-launcher{
  position:absolute;
  right:20px;
  bottom:calc(var(--aic-launcher-bottom, 84px) + env(safe-area-inset-bottom,0px));
  width:58px;height:58px;
  border:0;border-radius:50%;
  display:grid;place-items:center;
  background:var(--aic-gold);color:var(--aic-black);
  cursor:pointer;pointer-events:auto;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.aic-chat-launcher:hover{transform:translateY(-2px);background:var(--aic-gold-deep);box-shadow:0 14px 34px rgba(0,0,0,.22);}
.aic-chat-launcher:focus-visible{outline:3px solid rgba(244,163,0,.35);outline-offset:3px;}
.aic-chat-launcher:active{transform:scale(.96);}
.aic-chat-launcher svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}

.aic-chat-window{
  position:fixed;
  right:20px;
  top:12px;
  bottom:12px;
  width:min(390px,calc(100vw - 28px));
  max-height:calc(100vh - 24px);
  max-height:calc(100dvh - 24px);
  display:flex;flex-direction:column;
  overflow:hidden;
  background:var(--aic-white);
  border:1px solid var(--aic-border);
  border-radius:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.16);
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(10px) scale(.985);
  transform-origin:bottom right;
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
}
.aic-chat-window.aic-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);}
.aic-chat-header{
  min-height:74px;flex:0 0 auto;
  padding:13px 14px 13px 15px;
  display:flex;align-items:center;justify-content:space-between;
  background:var(--aic-black);color:#fff;border-bottom:2px solid var(--aic-gold);
}
.aic-chat-brand{display:flex;align-items:center;gap:10px;min-width:0;}
.aic-chat-avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;display:grid;place-items:center;background:var(--aic-gold);color:#111;font-size:10px;font-weight:900;letter-spacing:.06em;}
.aic-chat-brand h2{margin:0;font-size:14px;font-weight:750;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aic-chat-brand p{margin:3px 0 0;font-size:10px;color:#ddd;display:flex;align-items:center;gap:5px;}
.aic-status-dot{width:7px;height:7px;border-radius:50%;background:var(--aic-green);}
.aic-chat-close{width:34px;height:34px;flex:0 0 34px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font-size:23px;line-height:1;cursor:pointer;}
.aic-chat-close:hover{background:rgba(255,255,255,.14);transform:rotate(90deg);}
.aic-chat-close:focus-visible{outline:2px solid var(--aic-gold);outline-offset:2px;}

.aic-chat-messages{
  flex:1 1 auto;min-height:0;
  overflow-y:auto;overflow-x:hidden;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:18px 14px;background:var(--aic-cream);
  scroll-behavior:smooth;
}
.aic-chat-messages::-webkit-scrollbar{width:5px;}
.aic-chat-messages::-webkit-scrollbar-thumb{background:#d8cdbb;border-radius:20px;}
.aic-message{display:flex;gap:8px;margin-bottom:15px;animation:aic-message-in .24s ease both;}
.aic-message-user{justify-content:flex-end;}
.aic-message-avatar{flex:0 0 27px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--aic-gold);color:#111;font-size:7px;font-weight:900;}
.aic-message-content{max-width:82%;min-width:0;}
.aic-message-bubble{padding:10px 12px;border-radius:13px;font-size:12.5px;line-height:1.58;overflow-wrap:anywhere;word-break:break-word;}
.aic-message-bot .aic-message-bubble{background:#fff;border:1px solid #e5ddd0;border-top-left-radius:4px;}
.aic-message-user .aic-message-bubble{background:var(--aic-gold);color:#111;border-top-right-radius:4px;}
.aic-message-time{display:block;margin-top:4px;font-size:8.5px;color:#777;}
.aic-message-user .aic-message-time{text-align:right;}
.aic-message-bubble a{color:var(--aic-gold-text);font-weight:800;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;}
.aic-message-user .aic-message-bubble a{color:#111;}
.aic-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 13px 35px;}
.aic-suggestions button{border:1px solid #ddcfbb;background:#fff;color:#5c4a35;border-radius:999px;padding:7px 10px;font-size:10.5px;cursor:pointer;}
.aic-suggestions button:hover{border-color:var(--aic-gold);background:#fffaf1;}
.aic-suggestions button:focus-visible{outline:2px solid var(--aic-gold);outline-offset:2px;}
.aic-typing-bubble{display:flex;align-items:center;gap:5px;min-width:52px;padding:11px 13px;background:#fff;border:1px solid #e5ddd0;border-radius:13px;border-top-left-radius:4px;}
.aic-typing-dot{width:6px;height:6px;border-radius:50%;background:var(--aic-gold-text);animation:aic-typing 1.2s infinite ease-in-out;}
.aic-typing-dot:nth-child(2){animation-delay:.15s}.aic-typing-dot:nth-child(3){animation-delay:.3s}
.aic-chat-input-area{
  flex:0 0 auto;display:flex;align-items:flex-end;gap:7px;
  padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
  background:#fff;border-top:1px solid var(--aic-border);
}
.aic-chat-input-area textarea{
  flex:1;min-width:0;min-height:40px;max-height:94px;resize:none;
  border:1px solid #ddd4c6;border-radius:12px;padding:10px 11px;
  font:inherit;font-size:12px;line-height:1.4;color:var(--aic-text);
  outline:none;background:#fff;overflow-y:auto;
}
.aic-chat-input-area textarea:focus{border-color:var(--aic-gold);box-shadow:0 0 0 3px rgba(244,163,0,.12);}
#aic-chat-send{width:40px;height:40px;flex:0 0 40px;border:0;border-radius:11px;background:var(--aic-gold);color:#111;display:grid;place-items:center;cursor:pointer;}
#aic-chat-send:hover{background:var(--aic-gold-deep);transform:translateY(-1px);}
#aic-chat-send:focus-visible{outline:2px solid #111;outline-offset:2px;}
#aic-chat-send:disabled{opacity:.55;cursor:not-allowed;transform:none;}
#aic-chat-send svg{width:18px;height:18px;display:block;fill:currentColor;stroke:none;}
.aic-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;}
@keyframes aic-message-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes aic-typing{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}

@media(max-width:600px){
  .aic-chat-launcher{right:12px;width:56px;height:56px;}
  .aic-chat-window{
    right:10px;left:10px;width:auto;
    top:10px;bottom:10px;
    border-radius:17px;
    max-height:none;
  }
  .aic-chat-messages{padding:15px 12px;}
  .aic-message-content{max-width:86%;}
  .aic-chat-header{min-height:68px;}
  .aic-chat-brand h2{font-size:13.5px;}
}
@media(max-width:380px){
  .aic-chat-launcher{right:9px;width:54px;height:54px;}
  .aic-chat-window{right:6px;left:6px;top:8px;bottom:8px;}
  .aic-suggestions{margin-left:0;}
}
@media(max-height:560px){
  .aic-chat-window{top:8px;bottom:8px;border-radius:14px;}
  .aic-chat-header{min-height:58px;padding-top:9px;padding-bottom:9px;}
  .aic-chat-avatar{width:34px;height:34px;flex-basis:34px;}
  .aic-chat-messages{padding-top:10px;padding-bottom:10px;}
  .aic-message{margin-bottom:10px;}
  .aic-chat-input-area{padding-top:7px;padding-bottom:calc(7px + env(safe-area-inset-bottom,0px));}
}
@media(max-height:430px){
  .aic-chat-brand p{display:none;}
  .aic-chat-close{width:30px;height:30px;flex-basis:30px;}
  .aic-chat-window{top:5px;bottom:5px;}
}
@media(prefers-reduced-motion:reduce){
  #aic-chatbot *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
