/* Floorpassion-chat "Charlotte" (S9a) — eigen widget, zelfde stijl als de nieuwe kassa/lijstpagina's; werkt in klassiek én nieuw ontwerp. */
#fp-chat{--c-ink:#141413;--c-grijs:#6b6b6b;--c-lijn:#e3e2de;--c-vlak:#f5f4f1;--c-teal:#1b5c54;--c-groen:#1f6f3f;font-family:'Open Sans',Arial,sans-serif;color:var(--c-ink);position:fixed;right:16px;bottom:16px;z-index:9000;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
#fp-chat *,#fp-chat *::before,#fp-chat *::after{box-sizing:border-box}
#fp-chat a{color:var(--c-teal);text-decoration:underline}
.fp-ch-knop{display:flex;align-items:center;gap:10px;border:0;border-radius:30px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:6px 16px 6px 6px;cursor:pointer;font:600 14px 'Open Sans',Arial,sans-serif;color:var(--c-ink)}
.fp-ch-knop svg{flex:none}
@media (max-width:600px){.fp-ch-knop-tekst{display:none}.fp-ch-knop{padding:6px}}
#fp-chat.open .fp-ch-knop{display:none}
.fp-ch-teaser{position:relative;background:#fff;border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.18);max-width:320px;animation:fp-ch-in .25s ease}
.fp-ch-teaser[hidden]{display:none}
.fp-ch-teaser-in{display:flex;gap:12px;align-items:center;padding:14px 16px;cursor:pointer}
.fp-ch-teaser-in b{display:block;font-family:Montserrat,sans-serif;font-size:14px}
.fp-ch-teaser-in span{font-size:13px;color:#3d3d3d;line-height:1.35}
.fp-ch-teaser-sluit{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;border:0;background:var(--c-ink);color:#fff;font-size:16px;line-height:1;cursor:pointer}
@keyframes fp-ch-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fp-ch-paneel{width:min(400px,calc(100vw - 32px));height:min(640px,calc(100vh - 100px));background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.22);display:flex;flex-direction:column;overflow:hidden;animation:fp-ch-in .2s ease}
.fp-ch-paneel[hidden]{display:none}
.fp-ch-kop{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--c-ink);color:#fff}
.fp-ch-kop b{display:block;font-family:Montserrat,sans-serif;font-size:15px}
.fp-ch-kop span{font-size:12px;opacity:.8}
.fp-ch-kop>div{flex:1}
.fp-ch-sluit{border:0;background:none;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.fp-ch-berichten{flex:1;overflow-y:auto;padding:14px 14px 6px;background:var(--c-vlak);display:flex;flex-direction:column;gap:10px}
.fp-ch-b{max-width:88%;font-size:14px;line-height:1.5}
.fp-ch-b.user{align-self:flex-end}
.fp-ch-b.user .fp-ch-tekst{background:var(--c-ink);color:#fff;border-radius:16px 16px 4px 16px}
.fp-ch-b.assistant{align-self:flex-start;max-width:94%}
.fp-ch-b.assistant .fp-ch-tekst{background:#fff;border-radius:16px 16px 16px 4px}
.fp-ch-tekst{padding:10px 14px}
.fp-ch-tekst p{margin:0}
.fp-ch-tekst p+p,.fp-ch-tekst ul+p,.fp-ch-tekst p+ul{margin-top:8px}
.fp-ch-tekst ul{margin:0;padding-left:18px}
.fp-ch-b.systeem{align-self:center;font-size:12px;color:var(--c-grijs);text-align:center;background:none}
.fp-ch-typing{background:#fff;border-radius:16px;padding:12px 14px;display:flex;gap:4px}
.fp-ch-typing span{width:7px;height:7px;border-radius:50%;background:#bbb;animation:fp-ch-dot 1s infinite}
.fp-ch-typing span:nth-child(2){animation-delay:.15s}.fp-ch-typing span:nth-child(3){animation-delay:.3s}
@keyframes fp-ch-dot{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}
.fp-ch-kaarten{display:flex;gap:8px;overflow-x:auto;padding:8px 0 4px;scrollbar-width:none;scroll-snap-type:x mandatory}
.fp-ch-kaarten::-webkit-scrollbar{display:none}
.fp-ch-kaart{flex:none;width:168px;background:#fff;border:1px solid var(--c-lijn);border-radius:12px;overflow:hidden;scroll-snap-align:start;display:flex;flex-direction:column}
.fp-ch-kaart-foto{display:block;aspect-ratio:1/1;background:#f4f3f0}
.fp-ch-kaart-foto img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;display:block}
.fp-ch-kaart-in{padding:8px 10px 10px;display:flex;flex-direction:column;gap:4px;flex:1}
.fp-ch-kaart-titel{font-size:12px;font-weight:600;line-height:1.3;color:var(--c-ink)!important;text-decoration:none!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fp-ch-kaart-prijs{font-size:13px}
.fp-ch-kaart-prijs s{color:var(--c-grijs);font-size:11px}
.fp-ch-kaart-prijs small{color:var(--c-grijs);font-size:11px}
.fp-ch-kaart-voorraad{font-size:11px;color:var(--c-groen)}
.fp-ch-kaart-voorraad::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--c-groen);margin-right:4px;vertical-align:1px}
.fp-ch-kaart-voorraad.grijs{color:var(--c-grijs)}.fp-ch-kaart-voorraad.grijs::before{background:#bbb}
.fp-ch-kaart-acties{margin-top:auto;display:flex;gap:6px;padding-top:6px}
.fp-ch-kaart-knop,.fp-ch-kaart-staal{flex:1;font:600 11px 'Open Sans',Arial,sans-serif;border-radius:6px;padding:6px 4px;text-align:center;cursor:pointer;text-decoration:none!important}
.fp-ch-kaart-knop{background:var(--c-ink);color:#fff!important}
.fp-ch-kaart-staal{background:#fff;color:var(--c-teal);border:1px solid var(--c-teal)}
.fp-ch-kaart-staal:disabled{opacity:.6;cursor:default}
.fp-ch-knoppen{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px;background:var(--c-vlak)}
.fp-ch-knoppen:empty{display:none}
.fp-ch-knoppen button{border:1px solid var(--c-teal);background:#fff;color:var(--c-teal);border-radius:16px;padding:6px 12px;font:600 13px 'Open Sans',Arial,sans-serif;cursor:pointer}
.fp-ch-knoppen button:hover{background:var(--c-teal);color:#fff}
.fp-ch-knoppen .fp-ch-nieuw{border-color:var(--c-lijn);color:var(--c-grijs)}
.fp-ch-invoer{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--c-lijn);background:#fff}
.fp-ch-invoer textarea{flex:1;resize:none;border:1px solid #c9c9c6;border-radius:12px;padding:10px 12px;font:14px/1.4 'Open Sans',Arial,sans-serif;color:var(--c-ink);max-height:120px;outline:none}
.fp-ch-invoer textarea:focus{border-color:var(--c-ink)}
.fp-ch-invoer button{width:42px;height:42px;border:0;border-radius:50%;background:var(--c-teal);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.fp-ch-voet{font-size:11px;color:var(--c-grijs);text-align:center;padding:0 12px 8px;background:#fff}
@media (max-width:600px){
  #fp-chat{right:12px;bottom:12px}
  #fp-chat.open{inset:0;align-items:stretch}
  #fp-chat.open .fp-ch-paneel{width:100%;height:100%;border-radius:0}
  html.fp-ch-open{overflow:hidden}
}
