/* ==========================================================================
   API ASSISTANT — Mextyl (Liquid Glass, icon-only triggers, right-side panel)
   Réutilise les tokens --ar-* / --glass-* définis dans api-reference.css
   ========================================================================== */

/* ─── Trigger icon-only — neutre, sans fond coloré ─── */
.ara-trigger-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:8px; flex-shrink:0;
  background: transparent;
  color: var(--ar-ink-soft);
  border:1px solid transparent;
  cursor:pointer;
  transition: background .15s ease, color .15s ease, opacity .15s ease, transform .15s ease;
}
.ara-trigger-icon ion-icon{ font-size:13px; pointer-events:none; }
.ara-trigger-icon:hover{
  background: rgba(10,10,10,.06);
  color: var(--ar-ink);
  transform: translateY(-1px);
}

/* Variante compacte pour les listes denses (field rows, auth row) — masquée
   par défaut, révélée uniquement au survol de la card parente, exactement
   comme le comportement natif des icon-badges du design system. */
.ara-trigger-icon.compact{
  width:22px; height:22px; border-radius:7px;
  opacity:0;
}
.ar-field-row, .ar-auth-row{ position:relative; }
.ar-field-head, .ar-auth-name{ display:flex; align-items:center; gap:10px; }
.ar-field-head .ara-trigger-icon.compact,
.ar-auth-name .ara-trigger-icon.compact{ margin-left:auto; }
.ar-field-row:hover .ara-trigger-icon.compact,
.ar-auth-row:hover .ara-trigger-icon.compact,
.ara-trigger-icon.compact:focus-visible{ opacity:1; }

/* Placement dans la barre méthode/path (ar-endpoint-bar) — ne modifie QUE
   l'icône (align-self), le conteneur garde son align-items:stretch par
   défaut afin que le bouton "Try it" conserve sa hauteur pleine. */
.ar-endpoint-bar .ara-trigger-icon{
  align-self:center;
  margin:0 6px 0 0;
}

/* Placement dans les têtes de card (code sample, modal cURL, modal réponse) —
   s'aligne avec les icônes copy déjà présentes */
.ar-tryit-card-actions .ara-trigger-icon,
.ar-tryit-modal-code-head-actions .ara-trigger-icon{ }

/* Placement flottant à droite dans les rangées de tabs (status codes) */
.ara-trigger-tabs-anchor{
  display:flex; align-items:center; justify-content:space-between;
  width:100%;
}
.ara-trigger-tabs-anchor .ar-resp-tabs,
.ara-trigger-tabs-anchor .ar-tryit-status-tabs,
.ara-trigger-tabs-anchor .ar-tryit-modal-resp-status-tabs{ flex:1; margin-bottom:0; }
.ara-trigger-tabs-anchor .ara-trigger-icon{ margin-left:10px; flex-shrink:0; }

/* ==========================================================================
   RIGHT-SIDE PANEL — même vocabulaire visuel que .ar-sidebar / .ar-tryit
   ========================================================================== */
.ara-panel{
  position:fixed; top:0; right:0; bottom:0; z-index:10000;
  width:400px;
  background: var(--glass-bg-strong);
  backdrop-filter: var(--glass-blur-strong);
  -webkit-backdrop-filter: var(--glass-blur-strong);
  border-left:1px solid var(--glass-border);
  box-shadow: -8px 0 40px rgba(10,10,10,.10), var(--glass-highlight);
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .25s cubic-bezier(.4,0,.2,1), width .2s ease;
  font-family: var(--font-sans,'Inter',sans-serif);
}
.ara-panel.open{ transform:translateX(0); }
.ara-panel.expanded{ width:520px; }

.ara-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px;
  border-bottom:1px solid var(--ar-border);
  flex-shrink:0;
}
.ara-header-title{
  display:flex; align-items:center; gap:9px;
  font-size:.95rem; font-weight:700; color:var(--ar-ink);
}
.ara-header-title .ar-icon-badge{ width:26px; height:26px; background:transparent; color:var(--ar-ink-soft); }
.ara-header-actions{ display:flex; align-items:center; gap:2px; }
.ara-header-btn{
  width:28px; height:28px; border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  background:transparent; border:none; cursor:pointer;
  color:var(--ar-ink-soft); font-size:16px;
  transition:background .15s ease, color .15s ease;
}
.ara-header-btn:hover{ background:rgba(10,10,10,.06); color:var(--ar-ink); }

.ara-disclaimer{
  text-align:center; padding:12px 22px 6px;
  font-size:.72rem; line-height:1.5; color:var(--ar-ink-soft);
  flex-shrink:0;
}

.ara-body{
  flex:1; overflow-y:auto; padding:18px;
  display:flex; flex-direction:column; gap:14px;
  scrollbar-width:thin; scrollbar-color:transparent transparent;
}
.ara-body::-webkit-scrollbar{ width:6px; }
.ara-body:hover::-webkit-scrollbar-thumb{ background:rgba(var(--ar-gray-rgb),.35); border-radius:99px; }

.ara-welcome{ text-align:center; padding:36px 10px; }
.ara-welcome .ar-icon-badge{ width:40px; height:40px; border-radius:12px; margin:0 auto 12px; background:transparent; color:var(--ar-ink-soft); font-size:17px; }
.ara-welcome h4{ font-family: var(--font-serif,'Source Serif 4',serif); font-size:1.05rem; font-weight:500; color:var(--ar-ink); margin-bottom:4px; }
.ara-welcome p{ font-size:.8rem; color:var(--ar-ink-soft); line-height:1.5; }

.ara-msg{ display:flex; flex-direction:column; gap:6px; max-width:94%; }
.ara-msg.user{ align-self:flex-end; align-items:flex-end; }
.ara-msg.bot{ align-self:flex-start; align-items:flex-start; }

.ara-bubble{
  padding:11px 14px; border-radius:14px;
  font-size:.85rem; line-height:1.6;
  white-space:pre-wrap; word-break:break-word;
  font-family: var(--font-sans,'Inter',sans-serif);
}
.ara-msg.user .ara-bubble{ background:var(--ar-ink); color:#fff; border-bottom-right-radius:4px; }
.ara-msg.bot .ara-bubble{
  background: var(--glass-bg-soft);
  border:1px solid var(--glass-border);
  color:var(--ar-ink); border-bottom-left-radius:4px;
}
.ara-bubble code{ background:rgba(10,10,10,.06); padding:1px 5px; border-radius:5px; font-family:'SF Mono',Consolas,monospace; font-size:.76rem; }
.ara-bubble pre{ background:var(--ar-code-bg-solid); border:1px solid var(--ar-border); color:var(--ar-ink); padding:12px; border-radius:10px; overflow-x:auto; font-family:'SF Mono',Consolas,monospace; font-size:.76rem; margin:8px 0 2px; }
.ara-bubble ul{ margin:4px 0 4px 18px; padding:0; }
.ara-bubble li{ margin-bottom:3px; }
.ara-bubble b{ font-weight:700; }
.ara-bubble a{ color:var(--ar-orange); text-decoration:underline; }

.ara-match-chip{
  display:flex; align-items:center; gap:8px;
  padding:9px 12px; margin-top:6px;
  background: var(--glass-bg-strong); border:1px solid var(--glass-border); border-radius:10px;
  font-size:.8rem; font-weight:600; color:var(--ar-ink);
  cursor:pointer; text-align:left;
  transition:border-color .15s ease, background .15s ease;
}
.ara-match-chip:hover{ border-color:rgba(var(--ar-orange-rgb),.4); background:rgba(var(--ar-orange-rgb),.06); }
.ara-match-chip .ara-match-pill{
  font-size:.62rem; font-weight:800; padding:2px 7px; border-radius:999px;
  background:rgba(var(--ar-gray-rgb),.14); color:var(--ar-ink-soft); flex-shrink:0;
}

.ara-typing{ display:flex; gap:4px; padding:10px 14px; }
.ara-typing span{ width:6px; height:6px; border-radius:50%; background:var(--ar-ink-soft); animation:araBlink 1.1s infinite ease-in-out; }
.ara-typing span:nth-child(2){ animation-delay:.15s; }
.ara-typing span:nth-child(3){ animation-delay:.3s; }
@keyframes araBlink{ 0%,80%,100%{ opacity:.25; transform:scale(.8);} 40%{ opacity:1; transform:scale(1);} }

.ara-context-row{ padding:0 18px; flex-shrink:0; }
.ara-context-row.hidden{ display:none; }
.ara-context-chip{
  display:inline-flex; align-items:center; gap:7px; max-width:100%;
  padding:6px 10px 6px 12px; margin-bottom:10px;
  background: var(--glass-bg-strong); border:1px solid var(--glass-border); border-radius:10px;
  font-size:.72rem; color:var(--ar-ink);
}
.ara-context-chip ion-icon.ara-ctx-icon{ font-size:13px; color:var(--ar-ink-soft); flex-shrink:0; }
.ara-context-chip .ara-ctx-label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:260px; font-family:'SF Mono',Consolas,monospace; }
.ara-context-chip .ara-ctx-remove{ cursor:pointer; color:var(--ar-ink-soft); font-size:14px; flex-shrink:0; }
.ara-context-chip .ara-ctx-remove:hover{ color:var(--ar-ink); }

.ara-inputbar{ flex-shrink:0; padding:0 14px 14px; }
.ara-input-pill{
  display:flex; align-items:center; gap:8px;
  background: var(--glass-bg-strong);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border:1px solid var(--glass-border);
  border-radius:14px; padding:8px 8px 8px 14px;
  transition:border-color .15s ease;
}
.ara-input-pill:focus-within{ border-color:rgba(var(--ar-orange-rgb),.5); }
.ara-input-pill textarea{
  flex:1; border:none; background:transparent; outline:none;
  resize:none; font-size:.85rem; line-height:1.4; color:var(--ar-ink);
  max-height:100px; font-family:inherit; padding:4px 0;
}
.ara-input-pill textarea::placeholder{ color:var(--ar-ink-soft); }
.ara-send-btn{
  width:30px; height:30px; border-radius:50%; flex-shrink:0;
  background:var(--ar-ink); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:14px;
  transition:background .15s ease, opacity .15s ease;
}
.ara-send-btn:disabled{ opacity:.35; cursor:default; }
.ara-send-btn:not(:disabled):hover{ background:var(--ar-orange); }

body.dark-mode .ara-panel{ background: rgba(20,20,24,.85); }
body.dark-mode .ara-msg.bot .ara-bubble{ background: rgba(255,255,255,.04); }
body.dark-mode .ara-match-chip{ background: rgba(255,255,255,.04); }
body.dark-mode .ara-context-chip{ background: rgba(255,255,255,.04); }
body.dark-mode .ara-input-pill{ background: rgba(255,255,255,.04); }
body.dark-mode .ara-bubble pre{ background:#0d0d10; }
body.dark-mode .ara-trigger-icon:hover{ background: rgba(255,255,255,.08); }

@media (max-width:600px){
  .ara-panel{ width:100vw; }
  .ara-panel.expanded{ width:100vw; }
}