/* Engagement widgets: assistant + live chat, offer popup, scheduled notices. Public pages only. */
.chat-launch{position:fixed;right:18px;bottom:18px;z-index:95;display:flex;align-items:center;gap:10px;flex-direction:row-reverse}
.chat-fab{position:relative;width:60px;height:60px;border-radius:18px;border:0;padding:6px;cursor:pointer;background:#061225;box-shadow:0 18px 40px -12px rgba(6,18,26,.8),0 0 0 2px rgba(255,255,255,.9);overflow:visible;transition:transform .35s var(--spring)}
.chat-fab img{width:100%;height:100%;display:block;object-fit:contain}
.chat-fab:hover{transform:scale(1.08) rotate(-4deg)}.chat-fab:active{transform:scale(.95)}
.chat-fab .badge-n{position:absolute;top:2px;right:2px;min-width:20px;height:20px;border-radius:99px;background:var(--signal);color:#fff;font:700 .72rem/20px var(--f-label);text-align:center;border:2px solid #fff;transform:scale(0);transition:transform .35s var(--spring)}.chat-fab .badge-n.on{transform:scale(1)}
.chat-nudge{max-width:240px;padding:11px 14px;border-radius:20px 20px 4px 20px;background:var(--card);color:var(--ink);font-size:.84rem;box-shadow:var(--sh-2);border:1px solid var(--line);animation:toastIn .5s var(--spring);cursor:pointer;position:relative}
.chat-nudge button{position:absolute;top:-8px;left:-8px;width:22px;height:22px;border-radius:50%;border:0;background:var(--navy);color:#fff;font-size:12px;cursor:pointer}
.chat-nudge b{display:block;font:700 .84rem var(--f-display)}
.chat-panel{position:fixed;right:18px;bottom:96px;z-index:96;width:min(396px,calc(100vw - 20px));height:min(640px,calc(100dvh - 120px));display:none;flex-direction:column;border-radius:30px;overflow:hidden;background:var(--card);color:var(--ink);box-shadow:0 40px 90px -30px rgba(6,18,26,.7),0 0 0 1px var(--line);transform-origin:bottom right}
.chat-panel.open{display:flex;animation:panelIn .5s var(--spring)}
@keyframes panelIn{from{opacity:0;transform:translateY(24px) scale(.88)}to{opacity:1;transform:none}}
.chat-head{position:relative;padding:16px 16px 14px;color:#fff;background:radial-gradient(240px 120px at 90% 0,rgba(229,57,53,.5),transparent 70%),linear-gradient(160deg,var(--navy),var(--abyss))}
.chat-head .who{display:flex;gap:12px;align-items:center}
.chat-head .av{width:46px;height:46px;border-radius:14px;overflow:hidden;flex:none;padding:3px;background:#061225;box-shadow:0 0 0 2px rgba(255,255,255,.25)}.chat-head .av img{width:100%;height:100%;object-fit:contain}
.chat-head b{display:block;font:700 1rem var(--f-display);letter-spacing:-.02em}.chat-head small{display:flex;align-items:center;gap:6px;color:#B5CCDA;font-size:.76rem}
.chat-head small i{width:7px;height:7px;border-radius:50%;background:#43D18B;box-shadow:0 0 0 3px rgba(67,209,139,.22)}.chat-head small i.off{background:#E8B34F;box-shadow:0 0 0 3px rgba(232,179,79,.2)}
.chat-head .cx{position:absolute;right:12px;top:12px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;font-size:17px}
.chat-tabs{display:flex;gap:4px;padding:4px;margin-top:14px;border-radius:99px;background:rgba(255,255,255,.1)}
.chat-tabs button{flex:1;border:0;border-radius:99px;padding:.55em .5em;background:transparent;color:#C9DAE6;font:600 .76rem var(--f-text);cursor:pointer;transition:background .2s,color .2s}
.chat-tabs button[aria-selected=true]{background:#fff;color:var(--navy)}
.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--paper);scroll-behavior:smooth}
.msg{max-width:86%;padding:10px 14px;border-radius:20px;font-size:.9rem;line-height:1.45;overflow-wrap:anywhere;animation:msgIn .4s var(--spring);white-space:pre-wrap}
.msg.bot,.msg.agent{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:6px}
.msg.agent{background:var(--sky);border-color:transparent}
.msg.me{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:6px}
.msg.sys{align-self:center;background:transparent;color:var(--mute);font:600 .72rem var(--f-label);letter-spacing:.04em;text-align:center;max-width:100%}
.msg a{color:inherit;font-weight:700;text-underline-offset:3px}.msg .src{display:block;margin-top:8px;font-size:.72rem;color:var(--mute)}
.msg .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.msg .acts a{display:inline-flex;gap:5px;align-items:center;padding:.45em .95em;border-radius:99px;background:var(--navy);color:#fff;font:600 .74rem var(--f-text);text-decoration:none}.msg .acts a.wa{background:#128C4B}.msg .acts a.ghost{background:transparent;color:var(--navy);border:1px solid var(--navy)}
.typing{align-self:flex-start;display:flex;gap:4px;padding:13px 16px;border-radius:20px;background:var(--card);border:1px solid var(--line)}.typing i{width:6px;height:6px;border-radius:50%;background:var(--steel);animation:dots 1.1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes dots{40%{transform:translateY(-5px);background:var(--navy)}}
@keyframes msgIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
.chat-suggest{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 10px;background:var(--paper)}
.chat-suggest button{border:1px solid var(--line-2);background:var(--card);color:var(--ink);font:600 .74rem var(--f-text);padding:.5em .95em;border-radius:99px;cursor:pointer;transition:all .2s}.chat-suggest button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.chat-form{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line)}
.chat-form input{border-radius:99px;min-height:44px;padding:.5em 1.1em}
.chat-form button{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--signal);color:#fff;cursor:pointer;display:grid;place-items:center;transition:transform .25s var(--spring)}.chat-form button:hover{transform:scale(1.08)}
.chat-join{padding:16px;display:grid;gap:10px;background:var(--paper)}.chat-join p{margin:0;font-size:.88rem;color:var(--body)}
.chat-foot{padding:6px 12px 10px;background:var(--card);font:500 .72rem var(--f-label);color:var(--mute);text-align:center;letter-spacing:.03em}
@media (max-width:520px){.chat-panel{right:8px;left:8px;width:auto;bottom:86px;height:calc(100dvh - 104px);border-radius:26px}.chat-launch{right:12px;bottom:12px}}

/* offer popup (sheet) */
.offer-sheet{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);width:min(760px,calc(100vw - 24px));border-radius:32px;overflow:hidden;background:var(--card);box-shadow:var(--sh-3);position:relative}
.offer-art{position:relative;padding:30px;color:#fff;background:radial-gradient(300px 220px at 20% 10%,rgba(229,57,53,.7),transparent 70%),linear-gradient(160deg,var(--navy),var(--abyss));display:flex;flex-direction:column;justify-content:space-between;min-height:340px;overflow:hidden}
.offer-art img.ic{width:84px;height:84px;border-radius:24px;box-shadow:0 24px 40px -16px rgba(0,0,0,.8);transform:rotate(-6deg);animation:bob 6s ease-in-out infinite}
.offer-art .big{font:900 4.4rem/.9 var(--f-display);letter-spacing:-.028em}.offer-art .big small{font-size:1.2rem;letter-spacing:0;margin-left:4px}
.offer-art p{margin:6px 0 0;color:#B9CCD9;font-size:.86rem}
.offer-body{padding:34px 30px 28px;display:flex;flex-direction:column;gap:10px}
.offer-body h2{font-size:1.7rem;line-height:1.02;letter-spacing:-.028em;margin:0}.offer-body p{margin:0;color:var(--mute)}
.offer-body .cd{font:700 .9rem var(--f-label);color:var(--red);letter-spacing:.02em}
.offer-body form{display:grid;gap:8px;margin-top:6px}.offer-body .fine{font-size:.72rem;color:var(--mute)}
.offer-sheet>.x{position:absolute;top:12px;right:12px;z-index:3;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.9);cursor:pointer;font-size:18px;color:var(--navy)}
@media (max-width:640px){.offer-sheet{grid-template-columns:1fr}.offer-art{min-height:170px;flex-direction:row;align-items:center;gap:16px}.offer-art .big{font-size:3rem}}

/* scroll progress */
.scroll-progress{position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--signal),#FF8A85);z-index:130}
.offer-dialog{padding:0;background:transparent;border:0;max-width:100vw;margin:auto}
.offer-dialog[open]{display:block}
.world-clock{margin:18px 0 0;color:#8FB0C6;font-size:.72rem;letter-spacing:.04em}.world-clock b{color:#fff}
.offer-body input{margin:0}
.offer-body .btn{width:100%}
.offer-art>img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28;mix-blend-mode:luminosity;z-index:0;pointer-events:none}
.offer-art>*:not(.bg){position:relative;z-index:1}
/* the nudge sits beside the launcher; stack it above on narrow screens so it never covers the launcher or page text */
@media (max-width:520px){.chat-launch{flex-direction:column-reverse;align-items:flex-end}.chat-nudge{max-width:min(240px,calc(100vw - 24px))}}
