/* Asistente Sonia V28: SVG animado, launcher esquinado y saludo temporal. */
#sonia-assistant, #sonia-assistant * { box-sizing:border-box; }
#sonia-assistant { --sa-navy:#0c1b37; --sa-rose:#d50863; --sa-deep:#bc0756; --sa-petal:#facdd7; --sa-pale:#fdf0f4; --sa-line:#f0d7e0; font-family: 'Roboto',Arial,sans-serif; color:var(--sa-navy); position:relative; z-index:99980; }
#sonia-assistant button, #sonia-assistant input { font:inherit; }
#sonia-assistant .sa-launcher { position:fixed; bottom:max(8px,env(safe-area-inset-bottom, 0px)); right:max(8px,env(safe-area-inset-right, 0px)); display:flex; align-items:center; gap:14px; z-index:99985; }
#sonia-assistant .sa-tag { display:block; padding:11px 15px; background:rgba(255,255,255,.97); color:var(--sa-navy); border:1px solid #efdde3; border-radius:12px; font-family:'Dancing Script','Courgette',Georgia,cursive; font-size:19px; font-weight:600; line-height:1.05; letter-spacing:.015em; white-space:nowrap; box-shadow:0 8px 27px rgba(12,27,55,.09); pointer-events:none; }
#sonia-assistant .sa-fab-wrap { position:relative; width:66px; height:66px; flex:0 0 66px; }
#sonia-assistant .sa-fab { flex:none; display:grid; place-items:center; height:66px; width:66px; border-radius:50%; padding:1px; border:1px solid var(--sa-rose); background:var(--sa-navy); cursor:pointer; box-shadow:0 8px 26px rgba(12,27,55,.24),0 0 0 4px rgba(250,205,215,.5); transition:transform .22s ease,box-shadow .22s ease; }
#sonia-assistant .sa-fab:hover { transform:translateY(-3px); box-shadow:0 12px 27px rgba(12,27,55,.29),0 0 0 5px rgba(250,205,215,.7); }
#sonia-assistant .sa-fab:focus-visible, #sonia-assistant button:focus-visible, #sonia-assistant a:focus-visible { outline:3px solid #f6bd49; outline-offset:3px; }
#sonia-assistant .sa-flower { display:block; width:62px; height:62px; object-fit:contain; transform-origin:center; animation:sa-float-breathe 6s ease-in-out infinite; pointer-events:none; }
@keyframes sa-float-breathe { 0%,100%{transform:translateY(1px) rotate(-2deg) scale(.96)} 50%{transform:translateY(-2px) rotate(2deg) scale(1.03)} }
#sonia-assistant.sa-open .sa-launcher { display:none; }
#sonia-assistant .sa-panel { position:fixed; z-index:99986; right:22px; bottom:20px; width:min(408px,calc(100vw - 30px)); height:min(640px,calc(100dvh - 38px)); border:1px solid #e9cedb; border-radius:21px; overflow:hidden; background:#fff; display:none; flex-direction:column; box-shadow:0 24px 70px rgba(12,27,55,.26); }
#sonia-assistant.sa-open .sa-panel { display:flex; animation:sa-panel-pop .22s ease-out; }
@keyframes sa-panel-pop { from {opacity:.65;transform:translateY(12px) scale(.985)} to {opacity:1;transform:translateY(0) scale(1)} }
#sonia-assistant .sa-head { display:flex; flex:0 0 auto; align-items:center; gap:11px; padding:13px 15px; color:#fff; background:var(--sa-navy); }
#sonia-assistant .sa-head-icon { width:47px; height:47px; flex:0 0 47px; object-fit:contain; }
#sonia-assistant .sa-head-copy { flex:1; min-width:0; }
#sonia-assistant .sa-head-copy strong { display:block; font-weight:700; color:#fff; font-size:16px; line-height:1.3; }
#sonia-assistant .sa-head-copy small { display:block; color:#f9d5e5; font-size:11px; line-height:1.5; }
#sonia-assistant .sa-close { display:grid; place-items:center; flex:none; width:38px; height:38px; border:1px solid rgba(255,255,255,.29); border-radius:50%; background:rgba(255,255,255,.12); color:#fff; cursor:pointer; font:400 25px/1 Arial,sans-serif; }
#sonia-assistant .sa-welcome { padding:11px 15px; background:#fffafa; color:#5e3950; border-bottom:1px solid var(--sa-line); font-size:12px; line-height:1.5; }
#sonia-assistant .sa-messages { display:flex; flex:1 1 auto; flex-direction:column; gap:11px; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:17px 14px 22px; background:var(--sa-pale); scrollbar-color:#e7b5c9 transparent; }
#sonia-assistant .sa-msg { display:block; flex:0 0 auto; align-self:flex-start; max-width:91%; padding:11px 13px; border:1px solid #f2e1e8; border-radius:7px 16px 16px 16px; color:#243048; background:#fff; box-shadow:0 3px 12px rgba(12,27,55,.05); font-size:13px; line-height:1.52; overflow-wrap:anywhere; }
#sonia-assistant .sa-msg.sa-user { align-self:flex-end; background:var(--sa-rose); border-color:var(--sa-rose); border-radius:16px 7px 16px 16px; color:#fff; }
#sonia-assistant .sa-msg p { margin:0; }
#sonia-assistant .sa-msg p+p { margin-top:7px; }
#sonia-assistant .sa-products { display:grid; grid-template-columns:1fr; gap:8px; margin-top:11px; }
#sonia-assistant .sa-product { display:flex; align-items:center; text-align:left; gap:9px; width:100%; min-height:73px; border-radius:12px; border:1px solid #f1d7e1; background:#fff9fb; padding:7px; color:var(--sa-navy); cursor:pointer; }
#sonia-assistant .sa-product:hover { background:#fff0f6; border-color:#dca4bf; }
#sonia-assistant .sa-product img { width:60px; height:60px; object-fit:cover; border-radius:9px; background:#f7f0f2; flex:none; }
#sonia-assistant .sa-product-info { display:flex; flex-direction:column; gap:2px; min-width:0; }
#sonia-assistant .sa-product-info strong { font-size:12px; line-height:1.3; color:#16213f; }
#sonia-assistant .sa-product-info span { font-size:12px; color:var(--sa-deep); font-weight:700; }
#sonia-assistant .sa-product-info small { font-size:10px; color:#716673; }
#sonia-assistant .sa-action { display:inline-flex; justify-content:center; align-items:center; border:1px solid #e8bace; border-radius:999px; padding:8px 12px; background:#fff; font-size:12px; color:var(--sa-deep); font-weight:700; text-decoration:none; cursor:pointer; margin-top:9px; }
#sonia-assistant .sa-action:hover { background:#ffedf4; }
#sonia-assistant .sa-quick { display:flex; flex:0 0 auto; gap:7px; overflow-x:auto; scrollbar-width:none; padding:10px 12px; background:#fff; border-top:1px solid var(--sa-line); }
#sonia-assistant .sa-quick::-webkit-scrollbar { display:none; }
#sonia-assistant .sa-quick button { white-space:nowrap; flex:none; border:1px solid #ecd1db; border-radius:999px; padding:8px 12px; background:#fdf4f7; color:var(--sa-deep); font-size:11px; font-weight:650; cursor:pointer; }
#sonia-assistant .sa-quick button:hover { background:#f9e0eb; }
#sonia-assistant .sa-form { display:flex; flex:0 0 auto; align-items:center; gap:8px; padding:10px 12px 13px; background:#fff; border-top:1px solid var(--sa-line); }
#sonia-assistant .sa-input { flex:1; min-width:0; height:46px; border:1px solid #ead2de; background:#fff9fc; color:var(--sa-navy); border-radius:999px; outline:none; padding:0 15px; font-size:13px; }
#sonia-assistant .sa-input:focus { border-color:var(--sa-rose); box-shadow:0 0 0 3px #fad7e7; }
#sonia-assistant .sa-send { width:44px; height:44px; flex:0 0 44px; border:0; border-radius:50%; background:var(--sa-rose); color:white; font-size:22px; font-weight:700; cursor:pointer; }
#sonia-assistant .sa-footnote { margin:0; background:white; color:#7e6a77; font-size:10px; line-height:1.3; text-align:center; padding:0 8px 10px; }
@media(max-width:720px){
 #sonia-assistant .sa-launcher { right:max(8px,env(safe-area-inset-right,0px)); bottom:max(8px,env(safe-area-inset-bottom,0px)); }
 #sonia-assistant .sa-fab-wrap { width:64px; height:64px; flex-basis:64px; }

 #sonia-assistant .sa-fab { height:64px; width:64px; }
 #sonia-assistant .sa-flower { width:60px; height:60px; }
 #sonia-assistant .sa-tag { display:none; }
 #sonia-assistant .sa-panel { top:var(--sa-vv-top,0px); right:0; bottom:auto; left:0; width:100vw; height:var(--sa-vv-height,100dvh); max-height:none; border:0; border-radius:0; }
 #sonia-assistant .sa-head { padding:calc(9px + env(safe-area-inset-top,0px)) 12px 9px; }
 #sonia-assistant .sa-messages { padding:14px 11px 20px; }
 #sonia-assistant .sa-msg { max-width:90%; font-size:13px; }
 #sonia-assistant .sa-form { padding:9px 10px calc(11px + env(safe-area-inset-bottom,0px)); }
 #sonia-assistant .sa-footnote { display:none; }
}
@media(prefers-reduced-motion:reduce){ #sonia-assistant .sa-flower, #sonia-assistant.sa-open .sa-panel { animation:none!important; } #sonia-assistant .sa-fab { transition:none; } }


/* El mensaje es una pieza independiente sobre el botón circular. */
#sonia-assistant .sa-invite[hidden] { display:none!important; }
#sonia-assistant .sa-invite {
 position:absolute; right:0; bottom:calc(100% + 15px);
 width:min(300px,calc(100vw - 25px)); z-index:2;
 background:#fff; border:1px solid #f0d7e0; border-radius:17px;
 box-shadow:0 12px 36px rgba(12,27,55,.17),0 1px 2px rgba(12,27,55,.05);
 transform-origin:calc(100% - 32px) bottom;
}
#sonia-assistant .sa-invite::after {
 content:''; position:absolute; right:25px; bottom:-8px;
 width:14px; height:14px; transform:rotate(45deg);
 background:#fff; border-right:1px solid #f0d7e0; border-bottom:1px solid #f0d7e0;
 pointer-events:none;
}
#sonia-assistant .sa-invite.sa-invite-visible { animation:sa-invite-in .33s cubic-bezier(.2,.8,.2,1) both; }
#sonia-assistant .sa-invite.sa-invite-hiding { animation:sa-invite-out .28s ease-in both; pointer-events:none; }
@keyframes sa-invite-in {from{opacity:0;transform:translateY(9px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes sa-invite-out {from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5px)}}
#sonia-assistant .sa-invite-message {
 display:flex; flex-direction:column; align-items:flex-start; text-align:left;
 width:100%; border:0; border-radius:17px; cursor:pointer; background:transparent;
 color:var(--sa-navy); padding:14px 35px 15px 15px; gap:6px;
}
#sonia-assistant .sa-invite-message:hover {background:#fff8fb;}
#sonia-assistant .sa-invite-title {font-size:13px; line-height:1.35; font-weight:700;}
#sonia-assistant .sa-invite-copy {font-size:12.5px; line-height:1.48; font-weight:400;}
#sonia-assistant .sa-invite-signature {font-family:'Dancing Script','Courgette',Georgia,cursive; font-size:16px; line-height:1.2; color:var(--sa-deep); margin-top:2px;}
#sonia-assistant .sa-invite-dismiss {
 position:absolute; top:5px; right:5px; display:grid; place-items:center;
 width:29px; height:29px; padding:0; border:0; border-radius:50%;
 background:transparent; color:#846879; font:400 21px/1 Arial,sans-serif; cursor:pointer;
}
#sonia-assistant .sa-invite-dismiss:hover {background:#fbe3ec; color:var(--sa-deep);}
@media(max-width:720px){
 #sonia-assistant .sa-invite { width:min(286px,calc(100vw - 24px)); bottom:calc(100% + 14px); }
 #sonia-assistant .sa-invite-message { padding:13px 33px 14px 14px; }
}
@media(prefers-reduced-motion:reduce){
 #sonia-assistant .sa-invite.sa-invite-visible,
 #sonia-assistant .sa-invite.sa-invite-hiding { animation:none!important; }
}
