/* Bulle de l'assistant Gamsi (docs/ASSISTANT_GAMSI.md) · charte v3 : cacao, crème, ocre en accent (les bulles de Gamsi).
   Tout est préfixé .gamsi-, sauf deux règles en fin de fichier : les flèches haut et bas de nav.js (.scrolljump) montent
   au-dessus du lanceur (body.gamsi-present), et la page ne défile plus derrière le panneau plein écran du téléphone. */
.gamsi{--g-bg:#18120C;--g-bg2:#211912;--g-bulle:#2B2119;--g-creme:#F6ECDC;--g-pale:rgba(246,236,220,.62);
  --g-ocre:#F2BC66;--g-ocre-hi:#FFD580;--g-bord:rgba(246,236,220,.12);
  font-family:'Hanken Grotesk',sans-serif;color:var(--g-creme);-webkit-font-smoothing:antialiased;}
.gamsi *,.gamsi *::before,.gamsi *::after{box-sizing:border-box;}
.gamsi [hidden]{display:none!important;}

/* le bouton rond, en bas à droite */
.gamsi-lanceur{position:fixed;right:20px;bottom:20px;z-index:9000;width:64px;height:64px;padding:0;border-radius:50%;
  border:2px solid var(--g-ocre);background:var(--g-bg2);cursor:pointer;overflow:hidden;
  box-shadow:0 8px 26px rgba(0,0,0,.45),0 0 0 6px rgba(242,188,102,.12);transition:transform .2s ease,box-shadow .2s ease;}
.gamsi-lanceur:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.5),0 0 0 8px rgba(242,188,102,.18);}
.gamsi-lanceur:focus-visible,.gamsi button:focus-visible,.gamsi a:focus-visible,.gamsi textarea:focus-visible,
.gamsi input:focus-visible{outline:2px solid var(--g-ocre-hi);outline-offset:3px;}
.gamsi-lanceur img{width:100%;height:100%;display:block;border-radius:50%;}
.gamsi-ouvert .gamsi-lanceur,.gamsi-ouvert .gamsi-amorce{display:none;}

/* l'amorce « Une question ? », une fois par visite */
.gamsi-amorce{position:fixed;right:96px;bottom:30px;z-index:9000;max-width:240px;min-height:44px;padding:12px 44px 12px 15px;border-radius:16px 16px 4px 16px;
  background:var(--g-creme);color:#251D12;font-size:14px;font-weight:600;line-height:1.35;box-shadow:0 8px 24px rgba(0,0,0,.35);
  cursor:pointer;animation:gamsi-monte .35s ease both;}
.gamsi-amorce button{position:absolute;top:50%;right:0;width:44px;height:44px;margin-top:-22px;border:0;border-radius:50%;background:none;
  color:#7C6E5A;font-size:17px;line-height:1;cursor:pointer;touch-action:manipulation;}

/* le panneau */
.gamsi-panneau{position:fixed;right:20px;bottom:20px;z-index:9001;width:384px;height:min(640px,calc(100vh - 40px));
  display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:var(--g-bg);border:1px solid var(--g-bord);
  box-shadow:0 24px 70px rgba(0,0,0,.6);animation:gamsi-monte .28s ease both;}
.gamsi-panneau[hidden]{display:none;}
.gamsi-tete{display:flex;align-items:center;gap:12px;padding:14px 10px 14px 16px;background:var(--g-bg2);border-bottom:1px solid var(--g-bord);}
.gamsi-tete img{width:42px;height:42px;border-radius:50%;flex:none;}
.gamsi-tete b{display:block;font-size:16px;font-weight:700;letter-spacing:.01em;}
.gamsi-tete small{display:block;font-size:13px;color:var(--g-pale);}
.gamsi-fermer{margin-left:auto;width:44px;height:44px;border:0;border-radius:50%;background:none;color:var(--g-pale);font-size:22px;cursor:pointer;}
.gamsi-fermer:hover{color:var(--g-creme);background:rgba(246,236,220,.06);}

.gamsi-fil{position:relative;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:18px 16px 8px;scroll-behavior:smooth;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.gamsi-msg{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 12px;}
.gamsi-msg p{max-width:88%;margin:0;padding:11px 14px;border-radius:18px 18px 18px 5px;background:var(--g-ocre);color:#1A130C;
  font-size:15px;line-height:1.45;white-space:pre-line;overflow-wrap:anywhere;}
.gamsi-msg.vous{align-items:flex-end;}
.gamsi-msg.vous p{background:var(--g-bulle);color:var(--g-creme);border-radius:18px 18px 5px 18px;}
.gamsi-msg.note p{background:none;color:var(--g-pale);padding:2px 2px 0;font-size:13px;}
.gamsi-ecrit p{display:flex;gap:5px;padding:15px 16px;}
.gamsi-ecrit i{width:7px;height:7px;border-radius:50%;background:#1A130C;opacity:.35;animation:gamsi-point 1s infinite;}
.gamsi-ecrit i:nth-child(2){animation-delay:.15s;}
.gamsi-ecrit i:nth-child(3){animation-delay:.3s;}

/* les choix du parcours et les portes : de vrais boutons, 44 px au moins (cible tactile) */
.gamsi-choix{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 14px;max-width:100%;}
.gamsi-choix button,.gamsi-choix a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:10px 16px;border-radius:999px;
  border:1px solid rgba(242,188,102,.7);background:none;color:var(--g-ocre);font:600 15px/1.25 'Hanken Grotesk',sans-serif;
  text-align:left;text-decoration:none;white-space:normal;overflow-wrap:anywhere;cursor:pointer;-webkit-tap-highlight-color:transparent;
  touch-action:manipulation;transition:background .15s ease,color .15s ease;}
.gamsi-choix button:hover,.gamsi-choix a:hover{background:rgba(242,188,102,.12);}
.gamsi-choix .plein{background:var(--g-ocre);color:#1A130C;border-color:var(--g-ocre);}
.gamsi-choix .plein:hover{background:var(--g-ocre-hi);}
/* les branches et les questions : une colonne, comme un menu */
.gamsi-branches,.gamsi-liste{flex-direction:column;align-items:stretch;}
.gamsi-branches button,.gamsi-liste button{justify-content:flex-start;border-radius:14px;}
.gamsi-branches button{color:var(--g-creme);border-color:rgba(242,188,102,.45);background:rgba(242,188,102,.06);font-size:15px;}
/* la ligne du bas : plus discrète, toujours 44 px */
.gamsi-outils{gap:2px 4px;margin:-6px 0 14px;}
.gamsi-outils button{padding:10px 10px;border:0;border-radius:10px;color:var(--g-pale);font-weight:500;font-size:15px;
  text-decoration:underline;text-decoration-color:rgba(246,236,220,.3);text-underline-offset:3px;}
.gamsi-outils button:hover{color:var(--g-creme);background:rgba(246,236,220,.06);}
.gamsi-avis{display:flex;gap:4px;margin-top:4px;}
.gamsi-avis button{width:44px;height:44px;border:0;border-radius:10px;background:none;font-size:17px;cursor:pointer;opacity:.8;filter:grayscale(.6);
  touch-action:manipulation;}
.gamsi-avis button:hover{opacity:1;filter:none;background:rgba(246,236,220,.06);}
.gamsi-avis span{font-size:13px;color:var(--g-pale);padding:6px 4px;}

/* l'écran « Vos données » */
.gamsi-accord{padding:6px 2px 4px;}
.gamsi-accord img{width:76px;height:76px;border-radius:50%;margin:4px 0 14px;}
.gamsi-accord h3{margin:0 0 8px;font-size:20px;font-weight:800;line-height:1.2;color:var(--g-creme);text-transform:none;letter-spacing:-.01em;}
.gamsi-accord p{margin:0 0 12px;font-size:15px;line-height:1.5;color:var(--g-creme);}
.gamsi-accord .fin{font-size:14px;color:var(--g-pale);}
.gamsi-accord a{color:var(--g-ocre);}

/* « Parler à Antoine » */
.gamsi-form{display:grid;gap:10px;margin:2px 0 14px;padding:14px;border-radius:16px;background:var(--g-bg2);border:1px solid var(--g-bord);}
.gamsi-form label{display:grid;gap:5px;font-size:14px;color:var(--g-pale);}
.gamsi-form input,.gamsi-form textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--g-bord);background:var(--g-bg);
  color:var(--g-creme);font:15px/1.4 'Hanken Grotesk',sans-serif;}
.gamsi-form textarea{min-height:76px;resize:vertical;}
.gamsi-form .gamsi-choix{margin:2px 0 0;}

/* la saisie */
.gamsi-saisie{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 8px;border-top:1px solid var(--g-bord);background:var(--g-bg2);min-width:0;}
.gamsi-saisie textarea{flex:1 1 auto;min-width:0;width:100%;min-height:44px;max-height:120px;padding:11px 13px;border-radius:14px;border:1px solid var(--g-bord);
  background:var(--g-bg);color:var(--g-creme);font:15px/1.4 'Hanken Grotesk',sans-serif;resize:none;}
.gamsi-saisie textarea::placeholder{color:rgba(246,236,220,.42);}
.gamsi-saisie textarea:focus-visible,.gamsi-form input:focus-visible,.gamsi-form textarea:focus-visible{outline:none;border-color:rgba(242,188,102,.75);}
.gamsi-envoyer{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--g-ocre);color:#1A130C;font-size:20px;font-weight:700;cursor:pointer;}
.gamsi-envoyer:disabled{opacity:.4;cursor:default;}
.gamsi-pied{display:flex;justify-content:space-between;gap:10px;padding:8px 14px 10px;background:var(--g-bg2);font-size:12px;color:rgba(246,236,220,.6);}   /* 6:1 sur le fond */
.gamsi-saisie:not([hidden])+.gamsi-pied{padding-top:0;}
.gamsi-compte{flex:none;}
.gamsi-zoom .gamsi-amorce{display:none;}

@keyframes gamsi-monte{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes gamsi-point{0%,100%{opacity:.25;transform:translateY(0);}50%{opacity:.8;transform:translateY(-3px);}}
@media (prefers-reduced-motion:reduce){.gamsi *{animation:none!important;transition:none!important;}}

/* les flèches haut et bas de nav.js (écrans de 720 px au plus) se rangent au-dessus du lanceur, centrées sur lui */
@media (max-width:720px){
  body.gamsi-present .scrolljump{right:34px;bottom:94px;}
}

/* téléphone : le panneau prend tout l'écran visible (bulle.js le cale sur visualViewport : clavier, zoom) */
@media (max-width:520px){
  .gamsi-lanceur{right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));width:58px;height:58px;}
  .gamsi-amorce{right:calc(82px + env(safe-area-inset-right,0px));bottom:calc(21px + env(safe-area-inset-bottom,0px));max-width:min(210px,calc(100vw - 100px));font-size:14px;}
  body.gamsi-present .scrolljump{right:calc(25px + env(safe-area-inset-right,0px));bottom:calc(82px + env(safe-area-inset-bottom,0px));}
  .gamsi-panneau{top:0;left:0;right:auto;bottom:auto;width:100%;max-width:100%;height:100%;height:100dvh;border-radius:0;border:0;animation:none;}
  .gamsi-tete{padding:calc(10px + env(safe-area-inset-top,0px)) calc(6px + env(safe-area-inset-right,0px)) 10px calc(14px + env(safe-area-inset-left,0px));}
  .gamsi-fil{padding:14px calc(12px + env(safe-area-inset-right,0px)) 6px calc(12px + env(safe-area-inset-left,0px));}
  .gamsi-msg p{max-width:92%;}
  .gamsi-saisie{padding:8px calc(10px + env(safe-area-inset-right,0px)) 6px calc(10px + env(safe-area-inset-left,0px));}
  .gamsi-pied{padding:6px calc(12px + env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) calc(12px + env(safe-area-inset-left,0px));}
  /* 16 px au moins dans les champs : sinon iOS zoome toute la page en y entrant, et le panneau sort de l'écran */
  .gamsi-saisie textarea,.gamsi-form input,.gamsi-form textarea{font-size:16px;}
  html.gamsi-plein,html.gamsi-plein body{overflow:hidden;}
}
