/* ── Boule d'or assistante Giri Soins — adaptive aux thèmes du builder ──
   Utilise les variables CSS du builder définies sur :root et body[data-dashboard-theme="X"]
   --bg-deep, --bg-card, --bg-card-hover, --bg-surface, --bg-input
   --text-primary, --text-secondary, --text-muted
   --accent, --accent-glow, --accent-hover, --accent-soft
   --border, --border-hover
*/

/* Couleur du texte sur fond accent — défaut = sombre (marche pour le défaut or pâle) */
:root { --gs-asst-on-accent: #0a0a0f; }
/* Override pour thèmes où l'accent est moyen-foncé sur fond clair → texte blanc */
body[data-dashboard-theme="light"] { --gs-asst-on-accent: #ffffff; }
body[data-dashboard-theme="sand"]  { --gs-asst-on-accent: #ffffff; }
body[data-dashboard-theme="ocean"] { --gs-asst-on-accent: #ffffff; }
body[data-dashboard-theme="amethyst"] { --gs-asst-on-accent: #ffffff; }
body[data-dashboard-theme="aurore"] { --gs-asst-on-accent: #1a1615; }

/* ── FAB (boule) ── */
.gs-asst-fab{position:fixed;bottom:25px;right:25px;width:60px;height:60px;border-radius:50%;border:none;background:transparent;cursor:pointer;box-shadow:var(--shadow,0 4px 15px rgba(0,0,0,.3));transition:transform .2s,box-shadow .2s;z-index:9999;display:flex;align-items:center;justify-content:center;overflow:visible;padding:0}
.gs-asst-fab img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;position:relative;z-index:2}
.gs-asst-fab:hover{transform:scale(1.1);box-shadow:0 12px 40px var(--accent-glow,rgba(201,169,110,.3))}
.gs-asst-fab .gs-asst-pulse{position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--accent,#c9a96e);opacity:.5;animation:gsAsstPulse 2.4s ease-out infinite;pointer-events:none;z-index:1}
@keyframes gsAsstPulse{0%{transform:scale(.95);opacity:.7}100%{transform:scale(1.45);opacity:0}}

/* ── Panel ── */
.gs-asst-panel{position:fixed;bottom:100px;right:25px;width:380px;height:540px;background:var(--bg-card,#111118);border:1px solid var(--border,rgba(201,169,110,.12));border-radius:var(--radius-lg,20px);display:none;flex-direction:column;z-index:9999;box-shadow:var(--shadow-lg,0 16px 64px rgba(0,0,0,.5));overflow:hidden;font-family:var(--font-body,Inter,system-ui,sans-serif)}
.gs-asst-panel.open{display:flex;animation:gsAsstSlideIn .25s ease-out}
@keyframes gsAsstSlideIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* ── Header ── */
.gs-asst-header{padding:14px 16px;background:var(--bg-surface,#1a1a24);border-bottom:1px solid var(--border,rgba(201,169,110,.12));display:flex;align-items:center;justify-content:space-between;gap:12px}
.gs-asst-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.gs-asst-title img{width:32px;height:32px;border-radius:50%;flex-shrink:0;box-shadow:0 0 12px var(--accent-glow,rgba(201,169,110,.15))}
.gs-asst-title-text{display:flex;flex-direction:column;min-width:0}
.gs-asst-title-text strong{font-size:.92rem;font-weight:600;color:var(--text-primary,#f0ece4);font-family:var(--font-display,Cormorant Garamond,serif);letter-spacing:.3px}
.gs-asst-title-text small{font-size:.7rem;color:var(--text-secondary,#9a958c);font-weight:400;margin-top:1px}
.gs-asst-close{width:30px;height:30px;border-radius:var(--radius-sm,8px);border:none;background:var(--bg-card,#111118);color:var(--text-secondary,#9a958c);font-size:1.2rem;cursor:pointer;flex-shrink:0;line-height:1;transition:all .15s}
.gs-asst-close:hover{background:var(--accent,#c9a96e);color:var(--gs-asst-on-accent,#0a0a0f)}

/* ── Messages ── */
.gs-asst-msgs{flex:1;padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:var(--bg-card,#111118)}
.gs-asst-msgs::-webkit-scrollbar{width:6px}
.gs-asst-msgs::-webkit-scrollbar-thumb{background:var(--border-hover,rgba(201,169,110,.25));border-radius:3px}
.gs-asst-msg{padding:10px 14px;border-radius:var(--radius,12px);max-width:85%;font-size:.88rem;line-height:1.5;animation:gsAsstPopIn .2s ease;white-space:pre-wrap;word-wrap:break-word}
@keyframes gsAsstPopIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.gs-asst-msg.user{background:var(--accent,#c9a96e);color:var(--gs-asst-on-accent,#0a0a0f);align-self:flex-end;border-bottom-right-radius:4px;font-weight:500}
.gs-asst-msg.bot{background:var(--bg-surface,#1a1a24);color:var(--text-primary,#f0ece4);align-self:flex-start;border-bottom-left-radius:4px;border:1px solid var(--border,rgba(201,169,110,.12))}
.gs-asst-msg.bot.loading{opacity:.6;font-style:italic}

/* ── Suggestions chips ── */
.gs-asst-suggestions{padding:0 14px 8px;display:flex;flex-wrap:wrap;gap:6px;background:var(--bg-card,#111118)}
.gs-asst-chip{font-size:.74rem;padding:6px 12px;border-radius:14px;border:1px solid var(--border,rgba(201,169,110,.12));background:transparent;color:var(--text-secondary,#9a958c);cursor:pointer;transition:all .15s;font-family:inherit}
.gs-asst-chip:hover{background:var(--accent,#c9a96e);color:var(--gs-asst-on-accent,#0a0a0f);border-color:var(--accent,#c9a96e)}

/* ── Input row ── */
.gs-asst-input-row{padding:12px 14px;background:var(--bg-surface,#1a1a24);border-top:1px solid var(--border,rgba(201,169,110,.12));display:flex;gap:8px;align-items:center}
.gs-asst-input-row input{flex:1;padding:10px 14px;border:1px solid var(--border,rgba(201,169,110,.12));border-radius:20px;background:var(--bg-input,#13131b);color:var(--text-primary,#f0ece4);font-size:.88rem;outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit}
.gs-asst-input-row input:focus{border-color:var(--accent,#c9a96e);box-shadow:0 0 0 3px var(--accent-glow,rgba(201,169,110,.15))}
.gs-asst-input-row input::placeholder{color:var(--text-muted,#5a564f)}
.gs-asst-send{width:40px;height:40px;border-radius:50%;border:none;background:var(--accent,#c9a96e);color:var(--gs-asst-on-accent,#0a0a0f);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s}
.gs-asst-send:hover{transform:scale(1.05);box-shadow:0 4px 14px var(--accent-glow,rgba(201,169,110,.3))}
.gs-asst-send:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.gs-asst-send svg{width:18px;height:18px;fill:currentColor}

/* ── Mobile ── */
@media (max-width:600px){
  .gs-asst-panel{width:calc(100% - 20px);right:10px;bottom:90px;height:min(560px,calc(100vh - 120px))}
  .gs-asst-fab{bottom:20px;right:20px}
}
