/* aina-widget.css — extrait de l'accueil pour être réutilisable page par page.
   L'accueil garde son propre bloc : on ne touche pas à une page qui fonctionne. */
:root{
  --w-black:#0B0B0C; --w-ink:#1A1A1C; --w-muted:#6B6B70; --w-crimson:#C8102E;
  --w-green:#1F8A5B; --w-line:#E6E3DE; --w-cream:#FBFAF8;
}
    .chat-launcher {
      position: fixed; bottom: 28px; right: 28px;
      width: 64px; height: 64px;
      border-radius: 50%;
      background: var(--crimson, var(--w-crimson));
      box-shadow: 0 12px 36px rgba(200,32,61,0.45);
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      z-index: 90;
      transition: transform 0.25s;
      border: none;
    }
    .chat-launcher:hover { transform: translateY(-3px); background: var(--crimson-deep); }
    .chat-launcher svg { width: 28px; height: 28px; stroke: white; fill: none; stroke-width: 1.5; }
    .chat-launcher-pulse {
      position: absolute; inset: -4px;
      border-radius: 50%;
      border: 2px solid var(--crimson, var(--w-crimson));
      animation: ringPulse 2.2s infinite;
      opacity: 0;
    }
    @keyframes ringPulse {
      0% { opacity: .6; transform: scale(1); }
      100% { opacity: 0; transform: scale(1.35); }
    }
    .chat-launcher-badge {
      position: absolute; top: -4px; right: -4px;
      background: white;
      color: var(--crimson, var(--w-crimson));
      border-radius: 50%;
      width: 22px; height: 22px;
      display: flex; align-items: center; justify-content: center;
      font-size: 11px; font-weight: 700;
      border: 2px solid var(--crimson, var(--w-crimson));
    }
    .chat-launcher-badge.hidden { display: none; }

    .chat-teaser {
      position: fixed; bottom: 102px; right: 28px;
      background: white;
      padding: 14px 18px 14px 14px;
      box-shadow: 0 18px 40px rgba(0,0,0,.18);
      max-width: 280px;
      display: none;
      gap: 12px; align-items: center;
      cursor: pointer;
      z-index: 89;
      border-top: 2px solid var(--crimson, var(--w-crimson));
    }
    .chat-teaser.show { display: flex; animation: slideUp .4s ease; }
    .chat-teaser-close {
      position: absolute; top: 6px; right: 8px;
      background: transparent; border: none;
      font-size: 14px; color: var(--muted, var(--w-muted)); cursor: pointer;
    }
    .chat-teaser-avatar {
      width: 44px; height: 44px;
      border-radius: 50%;
      background-size: cover; background-position: center;
      flex-shrink: 0;
      position: relative;
    }
    .chat-teaser-avatar::after {
      content: ''; position: absolute;
      bottom: 0; right: 0;
      width: 12px; height: 12px;
      background: var(--green, var(--w-green)); border-radius: 50%;
      border: 2px solid white;
    }
    .chat-teaser-text { font-size: 12px; line-height: 1.4; color: var(--ink, var(--w-ink)); }
    .chat-teaser-text strong { display: block; font-weight: 600; margin-bottom: 2px; color: var(--black, var(--w-black)); }

    .chat-panel {
      position: fixed; bottom: 28px; right: 28px;
      width: 380px;
      max-width: calc(100vw - 32px);
      height: 600px;
      max-height: calc(100vh - 56px);
      background: white;
      box-shadow: 0 30px 80px rgba(0,0,0,.28);
      display: none;
      flex-direction: column;
      z-index: 91;
      overflow: hidden;
      border-radius: 2px;
    }
    .chat-panel.open { display: flex; animation: slideUp .35s cubic-bezier(.2,.8,.2,1); }
    .chat-header {
      background: var(--black, var(--w-black));
      color: white;
      padding: 20px 22px;
      display: flex; align-items: center; gap: 14px;
      border-bottom: 1px solid rgba(255,255,255,.08);
      position: relative;
    }
    .chat-header-avatars {
      display: flex; align-items: center;
    }
    .chat-header-avatar {
      width: 36px; height: 36px;
      border-radius: 50%;
      background-size: cover; background-position: center;
      border: 2px solid var(--black, var(--w-black));
      margin-left: -10px;
    }
    .chat-header-avatar:first-child { margin-left: 0; }
    .chat-header-info { flex: 1; }
    .chat-header-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 17px; font-weight: 500;
      letter-spacing: -0.2px;
    }
    .chat-header-status {
      font-size: 10px; letter-spacing: 1.5px;
      text-transform: uppercase;
      color: rgba(255,255,255,.5);
      margin-top: 3px;
      display: flex; align-items: center; gap: 6px;
    }
    .chat-header-status::before {
      content: ''; width: 6px; height: 6px; border-radius: 50%;
      background: var(--green, var(--w-green));
    }
    .chat-close {
      background: transparent; border: none;
      color: rgba(255,255,255,.6);
      cursor: pointer; font-size: 22px;
      width: 32px; height: 32px;
      display: flex; align-items: center; justify-content: center;
      transition: color .2s;
    }
    .chat-close:hover { color: white; }

    .chat-body {
      flex: 1;
      padding: 20px 18px;
      overflow-y: auto;
      background: var(--paper);
      display: flex; flex-direction: column; gap: 14px;
    }
    .chat-body::-webkit-scrollbar { width: 4px; }
    .chat-body::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); }

    .chat-msg {
      display: flex; gap: 8px;
      max-width: 88%;
      animation: msgIn .35s ease;
    }
    @keyframes msgIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
    .chat-msg.from-bot { align-self: flex-start; }
    .chat-msg.from-user { align-self: flex-end; flex-direction: row-reverse; }
    .chat-msg-avatar {
      width: 28px; height: 28px;
      border-radius: 50%;
      background-size: cover; background-position: center;
      flex-shrink: 0;
    }
    .chat-msg.from-user .chat-msg-avatar { display: none; }
    .chat-bubble {
      padding: 11px 14px;
      font-size: 13px;
      line-height: 1.5;
      border-radius: 14px;
    }
    .chat-msg.from-bot .chat-bubble {
      background: white;
      color: var(--ink, var(--w-ink));
      border-bottom-left-radius: 4px;
      box-shadow: 0 2px 8px rgba(0,0,0,.04);
    }
    .chat-msg.from-user .chat-bubble {
      background: var(--crimson, var(--w-crimson));
      color: white;
      border-bottom-right-radius: 4px;
    }
    .chat-bubble strong { font-weight: 600; }

    .chat-quick-replies {
      display: flex; flex-wrap: wrap; gap: 6px;
      padding: 0 4px 4px 36px;
      animation: msgIn .35s ease;
    }
    .chat-quick {
      padding: 8px 14px;
      background: white;
      border: 1px solid var(--crimson, var(--w-crimson));
      color: var(--crimson, var(--w-crimson));
      font-size: 12px;
      cursor: pointer;
      transition: all .2s;
      font-family: 'Inter', sans-serif;
      font-weight: 500;
      border-radius: 18px;
    }
    .chat-quick:hover { background: var(--crimson, var(--w-crimson)); color: white; }

    .chat-typing {
      display: flex; gap: 8px; align-items: center;
      padding-left: 36px;
      opacity: .6;
    }
    .chat-typing-dots {
      background: white;
      padding: 14px 16px;
      border-radius: 14px 14px 14px 4px;
      display: flex; gap: 4px;
      box-shadow: 0 2px 8px rgba(0,0,0,.04);
    }
    .chat-typing-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--muted, var(--w-muted));
      animation: typing 1.4s infinite;
    }
    .chat-typing-dot:nth-child(2) { animation-delay: .2s; }
    .chat-typing-dot:nth-child(3) { animation-delay: .4s; }
    @keyframes typing {
      0%, 60%, 100% { opacity: .3; transform: translateY(0); }
      30% { opacity: 1; transform: translateY(-3px); }
    }

    .chat-form {
      display: none;
      flex-direction: column; gap: 10px;
      padding: 4px 4px 4px 36px;
    }
    .chat-form.show { display: flex; }
    .chat-form input, .chat-form select {
      padding: 11px 14px;
      border: 1px solid var(--line, var(--w-line));
      font-family: 'Inter', sans-serif;
      font-size: 13px;
      outline: none;
      background: white;
      width: 100%;
    }
    .chat-form input:focus { border-color: var(--crimson, var(--w-crimson)); }
    .chat-form-row { display: flex; gap: 6px; }
    .chat-form-row > * { flex: 1; }
    .chat-form button {
      padding: 12px 18px;
      background: var(--crimson, var(--w-crimson)); color: white;
      border: none; cursor: pointer;
      font-size: 11px; font-weight: 700;
      letter-spacing: 1.5px; text-transform: uppercase;
    }
    .chat-form button:hover { background: var(--crimson-deep); }
    .chat-form-error {
      font-size: 11px; color: var(--crimson, var(--w-crimson));
      display: none;
    }

    .chat-footer {
      padding: 10px 14px;
      border-top: 1px solid var(--line, var(--w-line));
      background: white;
      display: flex; align-items: center; gap: 8px;
      font-size: 11px; color: var(--muted, var(--w-muted));
    }
    .chat-footer-text {
      flex: 1; letter-spacing: .3px;
    }
    .chat-footer-text strong { color: var(--ink, var(--w-ink)); font-weight: 600; }

    /* Composer : Aïna répond en langage naturel, il faut pouvoir lui écrire. */
    .chat-composer {
      display: flex; align-items: flex-end; gap: 8px;
      padding: 10px 12px;
      border-top: 1px solid var(--line, var(--w-line));
      background: white;
    }
    .chat-composer textarea {
      flex: 1;
      resize: none;
      min-height: 40px; max-height: 110px;
      padding: 11px 13px;
      border: 1px solid var(--line, var(--w-line));
      border-radius: 20px;
      font-family: 'Inter', sans-serif;
      font-size: 13px; line-height: 1.4;
      outline: none;
      background: var(--cream, #FAF8F5);
    }
    .chat-composer textarea:focus { border-color: var(--crimson, var(--w-crimson)); background: white; }
    .chat-send {
      flex: none;
      width: 40px; height: 40px;
      border: none; border-radius: 50%;
      background: var(--crimson, var(--w-crimson)); color: white;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .2s, opacity .2s;
    }
    .chat-send:hover:not(:disabled) { background: var(--crimson-deep); }
    .chat-send:disabled { opacity: .4; cursor: default; }
    .chat-send svg { width: 17px; height: 17px; fill: currentColor; }
    .chat-legal {
      padding: 0 14px 9px;
      background: white;
      font-size: 10px; line-height: 1.4; color: var(--muted, var(--w-muted));
      letter-spacing: .2px;
    }
@media (max-width: 720px){
  .chat-launcher{ bottom:80px; right:16px; width:56px; height:56px; }
  .chat-panel{ bottom:0; right:0; width:100vw; max-width:100vw; height:100vh; max-height:100vh; border-radius:0; }
  .chat-teaser{ display:none !important; }
}
@keyframes slideUp{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }
@keyframes msgIn{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }
