/* 22/10 : le compagnon de l'app (compagnon.py) : bulle en bas à droite, fenêtre de discussion. Hors de #root : il survit aux rendus. */
#compagnonHost{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
#compagnonHost[hidden]{display:none}
#compagnonHost>*{pointer-events:auto}
.cp-bulle{display:flex;align-items:center;gap:8px;height:48px;padding:0 18px 0 14px;border:0;border-radius:999px;background:var(--brand);color:#fff;font:700 14px/1 var(--ui,inherit);box-shadow:0 10px 26px -8px #0055a48c;cursor:pointer;transition:transform .15s}
.cp-bulle:hover{transform:translateY(-2px)}
.cp-bulle:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 45%,transparent);outline-offset:3px}
.cp-bulle{position:relative}
.cp-bulle .cp-point{width:9px;height:9px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 3px #3ddc8440}
.cp-mini{display:none}
.cp-fenetre{width:min(380px,calc(100vw - 32px));height:min(560px,calc(100vh - 120px));display:flex;flex-direction:column;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px -18px #0b1b3340;overflow:hidden}
.cp-tete{display:flex;align-items:center;gap:10px;padding:14px 14px 12px 16px;border-bottom:1px solid var(--line)}
.cp-tete div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cp-tete b{font-size:15px}
.cp-tete span{font-size:11.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-tete button{width:32px;height:32px;border:0;border-radius:10px;background:transparent;color:var(--ink2);font-size:20px;cursor:pointer}
.cp-tete button:hover{background:var(--line)}
.cp-fil{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.cp-msg{max-width:88%;padding:10px 12px;border-radius:16px;font-size:13.5px;line-height:1.5;overflow-wrap:anywhere}
.cp-msg.moi{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:6px}
.cp-msg.lui{align-self:flex-start;background:color-mix(in srgb,var(--brand) 7%,var(--card));border:1px solid var(--line);border-bottom-left-radius:6px}
.cp-msg.erreur{border-color:#e0a23a;background:color-mix(in srgb,#e0a23a 10%,var(--card))}
.cp-msg img{display:block;max-width:100%;max-height:140px;border-radius:10px;margin-bottom:6px}
.cp-aller{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cp-bug{display:block;margin-top:6px;font-size:11.5px;color:var(--ink2)}
.cp-idees{display:flex;flex-wrap:wrap;gap:6px}
.cp-idees button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.cp-idees button:hover{border-color:var(--brand)}
.cp-reflechit{align-self:flex-start;font-size:12.5px;color:var(--ink2);padding:4px 2px}
.cp-reflechit i{display:inline-block;width:6px;height:6px;margin:0 2px;border-radius:50%;background:currentColor;animation:cp-point 1s infinite alternate}
.cp-reflechit i:nth-child(2){animation-delay:.2s}.cp-reflechit i:nth-child(3){animation-delay:.4s}
@keyframes cp-point{from{opacity:.25}to{opacity:1}}
.cp-capture{display:flex;align-items:center;gap:8px;margin:0 14px 8px;padding:6px 8px;border:1px dashed var(--line);border-radius:12px;font-size:12px;color:var(--ink2)}
.cp-capture img{width:38px;height:38px;object-fit:cover;border-radius:8px}
.cp-capture span{flex:1}
.cp-capture button{border:0;background:transparent;color:var(--ink2);font-size:16px;cursor:pointer}
.cp-saisie{display:flex;align-items:flex-end;gap:8px;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.cp-saisie textarea{flex:1;min-height:40px;max-height:120px;resize:none;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--paper,var(--card));color:var(--ink);font:inherit;font-size:14px}
.cp-saisie textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 40%,transparent);border-color:var(--brand)}
.cp-joindre{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);cursor:pointer;font-size:17px;flex:none}
.cp-joindre:hover{border-color:var(--brand)}
.cp-saisie .btn{height:40px;flex:none}
@media(max-width:900px){
  #compagnonHost{right:12px;bottom:calc(78px + env(safe-area-inset-bottom))}
  .cp-bulle{width:46px;height:46px;padding:0;justify-content:center}
  .cp-libelle{display:none}
  .cp-mini{display:inline;font-size:21px;font-weight:800}
  .cp-bulle .cp-point{position:absolute;top:4px;right:4px;width:8px;height:8px}
  .cp-fenetre{height:min(520px,calc(100vh - 190px))}
}
@media(prefers-reduced-motion:reduce){.cp-bulle{transition:none}.cp-bulle:hover{transform:none}.cp-reflechit i{animation:none}}
