/* ALLO212 V176 - Bulle « a » (assistant) + bulle « Me localiser » : ivoire, crème, or doux */
.as-fab,.as-pan{--as-ivory:#FFFCF7;--as-cream:#F8F0E5;--as-line:#EADFCF;--as-gold:#C49A5A;--as-gold-d:#A47A3E;--as-ink:#2A1A10;--as-muted:#7A6656;--as-or:#F26B12}
.as-fab{position:fixed;right:14px;bottom:calc(100px + env(safe-area-inset-bottom,0px));z-index:2147482500;display:flex;flex-direction:column;align-items:flex-end;gap:10px;touch-action:none;user-select:none;-webkit-user-select:none;font-family:Montserrat,system-ui,sans-serif;transition:opacity .2s,transform .2s}
@media(min-width:901px){.as-fab{bottom:28px;right:24px}}
body.as-on-app .as-fab{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
@media(min-width:901px){body.as-on-app .as-fab{bottom:32px}}
.as-fab.as-fab-wl{bottom:calc(166px + env(safe-area-inset-bottom,0px))}
body.as-on-app .as-fab.as-fab-wl{bottom:calc(162px + env(safe-area-inset-bottom,0px))}
@media(min-width:901px){.as-fab.as-fab-wl,body.as-on-app .as-fab.as-fab-wl{bottom:98px}}
.as-fab.is-hidden{opacity:0;pointer-events:none;transform:scale(.85)}
.as-fab.is-drag{transition:none}.as-fab.is-drag .as-fab-b{cursor:grabbing}
.as-fab-b{position:relative;display:flex;align-items:center;gap:9px;border:0;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;transition:transform .15s,box-shadow .2s}
.as-fab-b:active{transform:scale(.96)}
.as-fab-b img{display:block;pointer-events:none}

/* « a » : rond ivoire, liseré or, halo très léger */
.as-fab-a{width:60px;height:60px;border-radius:50%;justify-content:center;background:var(--as-ivory);box-shadow:0 6px 18px rgba(60,40,20,.14),0 0 0 1px var(--as-line)}
.as-fab-a:before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid rgba(196,154,90,.45);animation:asHalo 3.2s ease-out infinite}
.as-fab-a.seen:before{animation-iteration-count:2}
.as-fab-dot{position:absolute;top:5px;right:5px;width:10px;height:10px;border-radius:50%;background:#3BB273;border:2px solid var(--as-ivory)}
/* V180 : bouton vivant (PC et mobile) : le point vert bat, le casque fait coucou toutes les 5 s */
.as-fab-dot{width:12px;height:12px;top:3px;right:3px;animation:asDot 1.6s ease-out infinite;z-index:2}
.as-fab-a .as-fab-i{display:grid;animation:asHello 5s ease-in-out 1.5s infinite;transform-origin:50% 80%}
.as-fab-a:hover .as-fab-i{animation:asHello .9s ease-in-out}
@keyframes asDot{0%{box-shadow:0 0 0 0 rgba(59,178,115,.75);transform:scale(1)}50%{transform:scale(1.18)}70%{box-shadow:0 0 0 9px rgba(59,178,115,0)}100%{box-shadow:0 0 0 0 rgba(59,178,115,0);transform:scale(1)}}
@keyframes asHello{0%,78%,100%{transform:rotate(0) scale(1)}82%{transform:rotate(-14deg) scale(1.08)}86%{transform:rotate(12deg) scale(1.08)}90%{transform:rotate(-8deg) scale(1.04)}94%{transform:rotate(5deg)}}
@media (prefers-reduced-motion:reduce){.as-fab-dot,.as-fab-a .as-fab-i{animation:none!important}}

/* « Me localiser » : verre ivoire, radar or, texte sur deux lignes */
.as-fab-loc{height:54px;padding:0 18px 0 7px;border-radius:999px;background:rgba(255,252,247,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--as-ink);box-shadow:0 10px 28px rgba(60,40,20,.16),0 0 0 1px rgba(196,154,90,.35),inset 0 1px 0 #fff;overflow:visible;animation:asNudge 6s ease-in-out infinite}
.as-fab-loc .as-fab-i{position:relative;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#E9CC9C,#B8894A 70%);color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 4px 10px rgba(164,122,62,.35)}
.as-fab-loc .as-fab-i:before,.as-fab-loc .as-fab-i:after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(196,154,90,.6);animation:asRadar 2.4s ease-out infinite}
.as-fab-loc .as-fab-i:after{animation-delay:1.2s}
.as-fab-loc .as-fab-i svg{position:relative;z-index:1}
.as-fab-t{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;text-align:start}
.as-fab-t b{font-weight:600;font-size:14.5px;letter-spacing:-.1px;white-space:nowrap}
.as-fab-t small{font-weight:500;font-size:11.5px;color:var(--as-muted);white-space:nowrap;margin-top:2px}
.as-fab-loc:hover{box-shadow:0 12px 30px rgba(60,40,20,.2),0 0 0 1px rgba(196,154,90,.6),inset 0 1px 0 #fff}
.as-fab-loc.is-wait .as-fab-i svg{animation:asSpin 1s linear infinite}
.as-fab-loc.is-ok{animation:none}.as-fab-loc.is-ok .as-fab-i:before,.as-fab-loc.is-ok .as-fab-i:after{display:none}
.as-fab-loc.is-ok .as-fab-i{background:var(--as-cream);color:var(--as-gold-d);box-shadow:inset 0 0 0 1.5px var(--as-gold)}
.as-fab-loc[hidden]{display:none}
@keyframes asRadar{0%{transform:scale(1);opacity:.85}100%{transform:scale(1.7);opacity:0}}
@keyframes asHalo{0%{transform:scale(.94);opacity:.9}100%{transform:scale(1.28);opacity:0}}
@keyframes asShine{0%,55%{background-position:130% 0}100%{background-position:-130% 0}}
@keyframes asNudge{0%,84%,100%{transform:translateX(0)}87%{transform:translateX(-2px)}90%{transform:translateX(2px)}93%{transform:translateX(-1px)}96%{transform:translateX(1px)}}
@keyframes asSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.as-fab-b,.as-fab-b:before,.as-fab-b:after,.as-fab-i:after{animation:none!important}}

/* Fenêtre de l'assistant */
.as-pan{position:fixed;z-index:2147482600;right:16px;bottom:16px;width:min(380px,calc(100vw - 24px));height:min(600px,calc(100vh - 32px));height:min(600px,calc(100dvh - 32px));display:flex;flex-direction:column;background:var(--as-ivory);border-radius:24px;box-shadow:0 24px 60px rgba(60,40,20,.22),0 0 0 1px var(--as-line);overflow:hidden;opacity:0;transform:translateY(14px);transition:opacity .22s,transform .22s;font-family:Montserrat,system-ui,sans-serif;color:var(--as-ink)}
.as-pan.is-on{opacity:1;transform:none}.as-pan[hidden]{display:none}
@media(max-width:700px){.as-pan{inset:auto 0 0 0;width:100%;height:calc(100dvh - 58px);border-radius:22px 22px 0 0}}
.as-h{display:flex;align-items:center;gap:12px;padding:14px 14px 12px;border-bottom:1px solid var(--as-line);background:var(--as-ivory)}
.as-av{width:42px;height:42px;border-radius:50%;background:var(--as-cream);display:grid;place-items:center;box-shadow:0 0 0 1px var(--as-line);flex:none}
.as-av img{width:32px;height:32px}
.as-ht{flex:1;min-width:0}.as-ht b{display:block;font-size:15.5px;font-weight:700;letter-spacing:-.1px}
.as-ht small{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--as-muted);font-weight:500}.as-ht small i{width:7px;height:7px;border-radius:50%;background:#3BB273}
.as-x{width:38px;height:38px;border-radius:50%;border:0;background:var(--as-cream);color:var(--as-ink);display:grid;place-items:center;cursor:pointer;flex:none}
.as-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain;background:var(--as-ivory)}
.as-m{max-width:86%;padding:10px 13px;border-radius:16px;font-size:14px;line-height:1.5}.as-m p{margin:0;white-space:pre-wrap}
.as-b{align-self:flex-start;background:var(--as-cream);border-bottom-left-radius:5px}
[dir=rtl] .as-b{border-bottom-left-radius:16px;border-bottom-right-radius:5px}
.as-u{align-self:flex-end;background:var(--as-ink);color:#FFF8EE;border-bottom-right-radius:5px}
[dir=rtl] .as-u{border-bottom-right-radius:16px;border-bottom-left-radius:5px}
.as-typing p{letter-spacing:3px;animation:asBlink 1s infinite}@keyframes asBlink{50%{opacity:.35}}
.as-acts{display:flex;flex-direction:column;gap:6px;margin-top:9px}
.as-act{display:block;padding:9px 12px;border-radius:12px;background:var(--as-ivory);border:1px solid var(--as-line);color:var(--as-ink);font-weight:600;font-size:13.5px;text-decoration:none}
.as-act:hover{border-color:var(--as-gold)}
.as-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 12px 2px;scrollbar-width:none;background:var(--as-ivory)}.as-chips::-webkit-scrollbar{display:none}
.as-chip{flex:none;height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--as-line);background:var(--as-ivory);color:var(--as-ink);font:500 13px Montserrat,system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.as-chip:hover{border-color:var(--as-gold)}
.as-in{display:flex;gap:8px;padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));background:var(--as-ivory)}
.as-in input{flex:1;min-width:0;height:46px;border:1px solid var(--as-line);border-radius:999px;padding:0 16px;font:400 15px Montserrat,system-ui,sans-serif;background:#fff;color:var(--as-ink);outline:none}
.as-in input:focus{border-color:var(--as-gold)}
.as-go{width:46px;height:46px;border-radius:50%;border:0;background:var(--as-ink);color:#FFF8EE;display:grid;place-items:center;cursor:pointer;flex:none}
[dir=rtl] .as-go svg{transform:scaleX(-1)}
.as-cf{display:flex;flex-direction:column;gap:7px;width:88%}
.as-cf input,.as-cf textarea{width:100%;border:1px solid var(--as-line);border-radius:12px;padding:10px 12px;font:400 14.5px Montserrat,system-ui,sans-serif;background:#fff;color:var(--as-ink);box-sizing:border-box;resize:vertical}
.as-cf-r{display:flex;gap:8px;justify-content:flex-end}.as-cf-r button{height:38px;padding:0 16px;border-radius:999px;font:600 13.5px Montserrat,system-ui,sans-serif;cursor:pointer;border:0}
.as-cf-no{background:var(--as-ivory);color:var(--as-ink);box-shadow:0 0 0 1px var(--as-line)}.as-cf-ok{background:var(--as-ink);color:#FFF8EE}.as-cf-ok:disabled{opacity:.6}
.as-err{color:#B42318;font-weight:500}
.as-dragging iframe{pointer-events:none!important}

/* Pages de commande (téléphone) : les bulles se posent dans l'espace libre à droite, chacune se déplace seule */
@media(max-width:900px){
  body.as-on-app .as-fab.as-fab-wl{bottom:auto;top:62%}
  body.as-on-app .as-fab.as-fab-wa{bottom:auto;top:calc(62% + 66px)}
}
/* V176c : puces avec icônes fines, police Montserrat, sur deux lignes sur ordinateur (plus besoin de faire défiler) */
.as-chip{display:inline-flex;align-items:center;gap:6px;font-family:Montserrat,system-ui,sans-serif!important;font-weight:500!important;font-size:12.5px!important;letter-spacing:.1px;color:var(--as-ink)}
.as-chip svg{color:var(--as-gold-d);flex:none}
@media(min-width:701px){.as-chips{flex-wrap:wrap;overflow:visible}}
.as-pan,.as-pan input,.as-pan button,.as-pan textarea{font-family:Montserrat,system-ui,sans-serif}
/* une fois localisé, la bulle devient plus discrète */
.as-fab-loc.is-ok{height:44px;padding:0 14px 0 5px}
.as-fab-loc.is-ok .as-fab-i{width:34px;height:34px}
.as-fab-loc.is-ok .as-fab-t small{display:none}
.as-fab-loc.is-ok .as-fab-t b{font-size:13px}
@media(max-width:900px){body.as-on-app .as-fab.as-fab-wl{top:63%}body.as-on-app .as-fab.as-fab-wa{top:calc(63% + 70px)}}
@media(max-width:600px){.as-fab-loc{height:48px;padding:0 14px 0 5px}.as-fab-loc .as-fab-i{width:36px;height:36px}.as-fab-t small{display:none}.as-fab-t b{font-size:13.5px}.as-fab-a{width:54px;height:54px}.as-fab-a img{width:36px;height:36px}}
/* V177 : « Me localiser » bien visible - il tremble, brille et pulse jusqu'au toucher */
.as-fab-loc:not(.is-ok){animation:asShake 2.6s ease-in-out infinite,asGlowLoc 1.8s ease-in-out infinite}
@keyframes asShake{0%,100%{transform:rotate(0) scale(1)}4%{transform:rotate(-4deg) scale(1.05)}8%{transform:rotate(4deg) scale(1.05)}12%{transform:rotate(-3deg) scale(1.04)}16%{transform:rotate(3deg) scale(1.03)}20%,99%{transform:rotate(0) scale(1)}}
@keyframes asGlowLoc{0%,100%{box-shadow:0 10px 28px rgba(60,40,20,.16),0 0 0 1px rgba(196,154,90,.35),0 0 0 0 rgba(212,160,80,.45)}50%{box-shadow:0 10px 28px rgba(60,40,20,.16),0 0 0 1px rgba(196,154,90,.6),0 0 0 9px rgba(212,160,80,0)}}
.as-fab-loc:not(.is-ok) .as-fab-i{animation:asBounce 2.6s ease-in-out infinite}
@keyframes asBounce{0%,100%{transform:translateY(0)}5%{transform:translateY(-5px)}11%{transform:translateY(0)}15%{transform:translateY(-2px)}20%{transform:translateY(0)}}
.as-fab-wa.on-logo .as-fab-a{width:50px;height:50px}.as-fab-wa.on-logo .as-fab-a img{width:34px;height:34px}.as-fab-wa.on-logo .as-fab-a:before{inset:-3px}

/* V180 : les deux boutons bougent dès l'arrivée sur la page, avec un reflet doré qui passe */
.as-fab-a:after,.as-fab-loc:not(.is-ok):after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.85) 48%,rgba(255,236,200,.5) 52%,transparent 65%) no-repeat;background-size:260% 100%;background-position:130% 0;animation:asShine2 3.2s ease-in-out .3s infinite;mix-blend-mode:soft-light}
.as-fab-loc:not(.is-ok):after{mix-blend-mode:normal;opacity:.75}
@keyframes asShine2{0%{background-position:130% 0}35%,100%{background-position:-130% 0}}
.as-fab-loc:not(.is-ok){animation-delay:.2s,0s}
@media (prefers-reduced-motion:reduce){.as-fab-a:after,.as-fab-loc:after{animation:none!important;display:none}}
/* LOT1-J : volet ouvert sur téléphone : bulle « A » rangée à moitié contre le bord, reste touchable (tap = ouvrir l'assistant) */
.as-fab.as-tuck{transform:translateX(var(--as-tuck,30px)) scale(.82);opacity:.92}
.as-fab.as-tuck .as-fab-a:before{animation:none}
@media (prefers-reduced-motion:reduce){.as-fab{transition:none}}
body.as-above-fab .as-fab.as-fab-wa{bottom:calc(158px + env(safe-area-inset-bottom,0px))}
body.as-above-fab .as-fab.as-fab-wl{bottom:calc(228px + env(safe-area-inset-bottom,0px))}
