/* The storefront concierge */
.concierge{--chat-base:#241d18;--chat-edge:#75523c;--chat-accent:#e2ad7e;--chat-message:#34291f;position:fixed;z-index:20;inset-inline-end:max(.8rem,env(safe-area-inset-right));bottom:calc(.8rem + env(safe-area-inset-bottom));color:var(--paper)}
.concierge[data-theme="charcoal"]{--chat-base:#222323;--chat-edge:#565956;--chat-accent:#e0c6a6;--chat-message:#303331}
.concierge[data-theme="forest"]{--chat-base:#202923;--chat-edge:#576d5e;--chat-accent:#c6d2a9;--chat-message:#2f3e32}
.concierge [hidden]{display:none!important}
.concierge button{font:inherit}
.concierge-launch{display:flex;align-items:center;gap:.55rem;position:relative;margin-inline-start:auto;padding:.55rem .95rem;background:var(--chat-accent);border:1px solid var(--chat-accent);color:#241913;border-radius:999px;min-height:48px;font-weight:750!important;box-shadow:0 .4rem 1.3rem #0009}
.concierge-launch svg,.concierge-heading svg{width:29px;height:24px;flex:none}
.concierge-launch b{position:absolute;right:-.2rem;top:-.3rem;font-size:.7rem;padding:0 .35rem;border-radius:100px;background:#873b23;color:#fff;border:1px solid #ffe0bf}
.concierge-greeting{display:flex;position:absolute;right:0;bottom:calc(100% + .6rem);width:min(17rem,calc(100vw - 2rem));background:var(--chat-base);border:1px solid var(--chat-edge);box-shadow:0 .4rem 1.4rem #0009;border-radius:.8rem;animation:concierge-welcome .3s ease-out}
.concierge-greeting-open,.concierge-icon{background:transparent;border:0;color:inherit;padding:.6rem .7rem;text-align:left}
.concierge-greeting-open{flex:1}
.concierge-icon{font-size:1.35rem!important;min-width:44px;min-height:44px;text-align:center;border-radius:.35rem}
.concierge-panel{position:absolute;right:0;bottom:calc(100% + .65rem);width:min(24rem,calc(100vw - 2rem));height:min(36rem,calc(100dvh - 6rem));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:var(--chat-base);border:1px solid var(--chat-edge);border-radius:1rem;overflow:hidden;box-shadow:0 1rem 3rem #000a;opacity:0;transform:translateY(10px);transition:opacity .17s ease,transform .17s ease}
.concierge[data-open] .concierge-panel{opacity:1;transform:none;animation:concierge-welcome .22s ease-out}
.concierge[data-animation="fade"] .concierge-panel{transform:none;animation-name:concierge-fade}
.concierge[data-animation="none"] .concierge-panel,.concierge[data-animation="none"] .concierge-greeting{transition:none;animation:none}
.concierge-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.7rem;background:#0003;border-bottom:1px solid var(--chat-edge)}
.concierge-heading svg{color:var(--chat-accent)}.concierge-heading h2{font-size:1.12rem;margin:0;letter-spacing:0}.concierge-heading p{font-size:.77rem;color:var(--muted);margin:0}
.concierge-actions{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;padding:.65rem}
.concierge-actions a,.concierge-actions button{display:flex;align-items:center;justify-content:center;text-align:center;min-width:0;min-height:38px;background:transparent;color:var(--chat-accent);border:1px solid var(--chat-edge);border-radius:.5rem;text-decoration:none;font-size:.8rem;padding:.35rem}
.concierge-actions a:hover,.concierge-actions button:hover{background:var(--chat-message);color:var(--paper)}
.concierge-transcript{overflow:auto;overscroll-behavior:contain;padding:.25rem .7rem}
.concierge-messages{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.55rem}
.concierge-message{padding:.48rem .65rem;border-radius:.75rem;background:var(--chat-message);max-width:90%;align-self:start;overflow-wrap:anywhere;font-size:.88rem}
.concierge-message small{display:block;color:var(--chat-accent);font-size:.7rem}
.concierge-message p{margin:0;white-space:pre-wrap}
.concierge[data-open] .concierge-message{animation:concierge-welcome .18s ease-out}
.concierge-card{clear:both;border:1px solid var(--chat-edge);background:var(--chat-base);padding:.55rem;margin-top:.45rem;border-radius:.55rem;overflow-wrap:anywhere}
.concierge-card img{float:right;width:54px;height:54px;object-fit:cover;border-radius:.35rem;margin:0 0 .3rem .35rem}
.concierge-card a{display:inline-block;margin:.25rem .5rem 0 0;color:var(--chat-accent)}
.concierge-card ol,.concierge-card ul{font-size:.76rem;margin:.25rem 0;padding-inline-start:1.2rem}
.concierge-card button.concierge-card-action,.concierge-footer button.concierge-sound{min-height:32px;padding:.15rem .35rem;margin-top:.25rem;border:1px solid var(--chat-edge);border-radius:.35rem;background:transparent;color:var(--chat-accent);font-size:.75rem}.concierge-visitor{align-self:end;background:#67442c}.concierge-agent{border:1px solid var(--chat-edge)}
.concierge-typing{font-size:.8rem;color:var(--muted);margin:.4rem 0}.concierge-typing span{animation:concierge-pulse 1.1s ease-in-out infinite}
.concierge-bottom{border-top:1px solid var(--chat-edge);padding:.6rem}.concierge-bottom form{display:flex;gap:.4rem;align-items:end;margin:0}.concierge-compose{flex:1;min-width:0;margin:0}.concierge-compose input{font-size:16px;width:100%;min-height:44px;border-radius:.4rem}.concierge-bottom button[type="submit"]{background:var(--chat-accent);color:#21160e;border-color:var(--chat-accent);border-radius:.4rem;margin:0;padding:.45rem}
.concierge-file{font-size:.74rem;margin:0;max-width:5.4rem}.concierge-file input{font-size:.69rem;max-width:5.4rem;padding:.3rem}.concierge-error{font-size:.8rem;color:#ffd2aa;margin:.3rem 0}
.concierge-footer{display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.72rem;color:var(--muted);margin-top:.45rem}
@keyframes concierge-welcome{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes concierge-fade{from{opacity:0}to{opacity:1}}
@keyframes concierge-pulse{50%{opacity:.35}}
@media(max-width:600px){.concierge-panel{position:fixed;inset:0;width:auto;height:100dvh;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.concierge-actions a,.concierge-actions button{min-height:44px}body:has(.concierge[data-open]){overflow:hidden}}
@media(prefers-reduced-motion:reduce){.concierge *{animation:none!important;transition:none!important}}

