/* ASTOX assistant: white conversation panel, following the supplied reference. */
.assistant{--chat-ink:#11171b;--chat-muted:#5d6368;--chat-line:#e7e8e9;--chat-soft:#f4f4f5;position:fixed;z-index:150;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));color:var(--chat-ink);font-family:inherit;font-size:16px;font-weight:400;line-height:1.55;letter-spacing:0;color-scheme:light;pointer-events:none}
.assistant[hidden],.assistant [hidden],.assistant-floor[hidden]{display:none!important}
.assistant *,.assistant *::before,.assistant *::after{box-sizing:border-box}
.assistant button,.assistant textarea{font:inherit}.assistant button{cursor:pointer}
.assistant-launcher,.assistant-panel{pointer-events:auto}.assistant svg{display:block;width:20px;height:20px;flex:none}
.assistant-panel{position:relative;display:flex;flex-direction:column;width:min(400px,calc(100vw - 48px));height:min(580px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);overflow:hidden;border:1px solid var(--chat-line);border-radius:28px;background:#fff;box-shadow:0 18px 65px #11171b20}
.assistant-heading{display:flex;align-items:center;gap:14px;padding:24px 22px 18px;flex:none}
.assistant-brand{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#191a18;flex:none}.assistant-brand img{display:block;width:24px;height:24px}
.assistant-identity{flex:1;min-width:0}.assistant .assistant-heading h2{margin:0;color:var(--chat-ink);font-size:18px;line-height:1.3;font-weight:600;letter-spacing:-.02em}
.assistant-icon-button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #eff0f1;border-radius:50%;background:#fff;color:var(--chat-ink);box-shadow:0 1px 5px #11171b07;flex:none}.assistant-icon-button:hover{background:var(--chat-soft)}
.assistant-messages{flex:1 1 auto;min-height:56px;overflow-y:auto;overscroll-behavior:contain;padding:22px 20px;scrollbar-width:thin;scrollbar-color:#c1c4c6 transparent;scroll-behavior:auto}
.assistant-welcome,.assistant-message{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:start;margin:0 0 22px;padding:0;background:transparent;overflow-wrap:anywhere}
.assistant-welcome::before,.assistant-message:not(.assistant-message-user)::before{content:"";grid-column:1;grid-row:1;display:block;width:38px;height:38px;margin-top:3px;border:1px solid #191a18;border-radius:50%;background:#191a18 url('/assets/astox-chat-bubble.svg') center/22px 22px no-repeat;box-shadow:0 1px 6px #11171b0b}
.assistant .assistant-welcome p,.assistant .assistant-message p{grid-column:2;grid-row:1;margin:0;padding:17px 19px;border-radius:24px;background:var(--chat-soft);color:var(--chat-ink);font-size:16px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.assistant .assistant-welcome strong,.assistant .assistant-message strong,.assistant-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.assistant-message-user{display:block;max-width:85%;width:fit-content;margin-left:auto}.assistant .assistant-message-user p{padding:15px 20px;border-radius:24px 24px 4px 24px;background:#eeeef0}
.assistant-message-note{display:block;margin:5px 4px 0;color:var(--chat-muted);font-size:12px;line-height:1.4}
.assistant-message:last-child,.assistant-welcome:last-child{margin-bottom:0}
.assistant-form{margin:0;padding:8px 18px 0;flex:none}.assistant-composer{display:flex;align-items:flex-end;gap:4px;padding:6px;border:1px solid #dedfe0;border-radius:34px;background:#fff;box-shadow:0 2px 12px #11171b0d}
.assistant-composer:focus-within{outline:none;border-color:#929598}
.assistant textarea{display:block;flex:1;width:0;min-width:0;min-height:48px;height:48px;max-height:104px;padding:12px 4px;resize:none;border:0;border-radius:24px;background:transparent;color:var(--chat-ink);font-size:16px;line-height:24px;overflow-y:auto}
.assistant textarea::placeholder{color:var(--chat-muted);opacity:1}.assistant textarea:focus,.assistant textarea:focus-visible{outline:none;border:0;box-shadow:none}
.assistant-send{display:grid;place-items:center;width:48px;height:48px;flex:none;padding:0;border:1px solid #191a18;border-radius:50%;background:#191a18;color:#fff;box-shadow:0 2px 5px #11171b15}.assistant-send:hover{background:#353633}.assistant-send svg{width:24px;height:24px}
.assistant button:disabled,.assistant textarea:disabled{cursor:default;opacity:.55}
.assistant .assistant-status{margin:8px 10px 0;color:var(--chat-muted);font-size:14px;line-height:1.45;overflow-wrap:anywhere}.assistant-status:empty{display:none}.assistant .assistant-status[data-error=true]{color:#9b3028}
.assistant-form>.assistant-contact{margin-inline:10px;text-align:left}
.assistant-footer{flex:none;padding:0 24px 12px}.assistant .assistant-guidance{margin:7px 0 0;text-align:center;color:var(--chat-muted);font-size:12px;line-height:1.4}.assistant-tools{flex:none;align-self:flex-end}.assistant-tools>summary{display:grid;place-items:center;width:48px;height:48px;min-height:48px;padding:0;margin:0;color:var(--chat-ink);border-radius:50%;cursor:pointer;list-style:none}.assistant-tools>summary:hover,.assistant-tools[open]>summary{background:var(--chat-soft)}.assistant-tools>summary svg{width:22px;height:22px}.assistant-tools>summary::-webkit-details-marker{display:none}
.assistant-tools-content{position:absolute;z-index:3;left:18px;right:18px;bottom:102px;max-height:calc(100% - 126px);overflow-y:auto;overscroll-behavior:contain;padding:12px 16px 14px;border:1px solid var(--chat-line);border-radius:16px;background:#fff;box-shadow:0 6px 25px #11171b16}.assistant-tools-actions{display:flex;justify-content:space-between;gap:12px}.assistant-reset,.assistant-contact{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--chat-ink);font-size:14px;text-decoration:none}
.assistant .assistant-notice{margin:7px 0 0;color:var(--chat-muted);font-size:13px;line-height:1.5}.assistant-notice a{text-decoration:none}
.assistant :focus-visible{outline:2px solid #11171b;outline-offset:3px}
@media(max-width:600px){
 .assistant{left:0;right:0;bottom:var(--assistant-viewport-bottom,0px);pointer-events:none}
 .assistant-launcher{margin:0 max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) auto}
 .assistant-panel{width:100%;max-width:none;height:min(420px,calc(var(--assistant-viewport-height,100dvh) * .62));max-height:calc(var(--assistant-viewport-height,100dvh) - 12px);border-bottom:0;border-radius:22px 22px 0 0;padding-top:36px;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 45px #11171b12}
 .assistant-panel::before{display:none}
 .assistant-heading{padding:10px 16px 9px;gap:10px}.assistant-brand{width:32px;height:32px}.assistant-brand img{width:21px;height:21px}.assistant .assistant-heading h2{font-size:16px}.assistant-minimize{display:none}
 .assistant-messages{padding:12px 16px 14px;touch-action:pan-y;-webkit-overflow-scrolling:touch}.assistant-welcome,.assistant-message{grid-template-columns:28px minmax(0,1fr);gap:8px;margin-bottom:14px}.assistant-welcome::before,.assistant-message:not(.assistant-message-user)::before{width:28px;height:28px;background-size:17px}
 .assistant .assistant-welcome p,.assistant .assistant-message p{padding:11px 13px;font-size:15px;line-height:1.5;border-radius:18px}.assistant .assistant-message-user p{border-radius:18px 18px 4px 18px}.assistant-message-user{max-width:84%}
 .assistant-form{padding:5px 12px 0}.assistant-footer{padding:0 16px 10px}.assistant-tools>summary{width:44px;height:44px;min-height:44px}
 .assistant-composer{padding:4px;gap:3px;border-radius:30px}.assistant textarea{min-height:44px;height:44px;padding:10px 3px}
 .assistant-send{width:44px;height:44px}.assistant-send svg{width:22px;height:22px}
 .assistant-tools-content{left:12px;right:12px;bottom:94px;max-height:calc(100% - 116px)}
 .assistant-panel{animation:chat-appear .16s ease-out}
 @keyframes chat-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
 .assistant[data-keyboard=open] .assistant-panel{height:calc(var(--assistant-viewport-height,100dvh) - 12px)}
 .assistant[data-keyboard=open] .assistant-heading{padding-block:8px}.assistant[data-keyboard=open] .assistant-messages{padding-block:10px}
 html.assistant-sheet-open{overflow:hidden;overscroll-behavior:none}
}
@media(max-height:500px){.assistant-panel{height:calc(var(--assistant-viewport-height,100dvh) - 48px);max-height:calc(var(--assistant-viewport-height,100dvh) - 48px)}.assistant-heading{padding-block:8px}.assistant-messages{padding-block:10px;min-height:32px}.assistant textarea{max-height:72px}.assistant-status{max-height:60px;overflow-y:auto}.assistant-tools>summary{min-height:44px}}
@media(max-width:600px) and (max-height:500px){.assistant-panel{height:calc(var(--assistant-viewport-height,100dvh) - 12px);max-height:calc(var(--assistant-viewport-height,100dvh) - 12px)}}
@media(prefers-reduced-motion:reduce){.assistant *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(prefers-contrast:more){.assistant{--chat-muted:#11171b;--chat-line:#6b7074}.assistant-composer{border-color:#11171b}.assistant-panel{box-shadow:none}}
@media(forced-colors:active){.assistant{--chat-ink:CanvasText;--chat-muted:CanvasText;--chat-line:CanvasText;--chat-soft:Canvas}.assistant-panel,.assistant-composer,.assistant textarea,.assistant .assistant-message p,.assistant .assistant-welcome p{background:Canvas;color:CanvasText;box-shadow:none}.assistant-launcher,.assistant-icon-button,.assistant-send,.assistant-tools>summary{background:ButtonFace;color:ButtonText;border-color:ButtonText}.assistant-launcher,.assistant-brand{background:#191a18;forced-color-adjust:none}.assistant-brand img{background:#fff;forced-color-adjust:none}.assistant-welcome::before,.assistant-message:not(.assistant-message-user)::before{forced-color-adjust:none}.assistant :focus-visible,.assistant-composer:focus-within{outline-color:Highlight}}
@media print{.assistant{display:none!important}}

/* Only shown while an actual answer request is pending. */
.assistant-typing{display:flex;align-items:center;gap:5px;width:fit-content;margin:0 0 12px 50px;padding:15px 18px;border-radius:18px;background:var(--chat-soft)}.assistant-typing>span{width:6px;height:6px;border-radius:50%;background:#62696e;animation:astox-typing 1s ease-in-out infinite}.assistant-typing>span:nth-child(2){animation-delay:.15s}.assistant-typing>span:nth-child(3){animation-delay:.3s}
@keyframes astox-typing{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media(max-width:600px){.assistant-typing{margin-left:36px;padding:12px 15px}}
@media(prefers-reduced-motion:reduce){.assistant-typing>span{animation:none;opacity:.7}}
@media(forced-colors:active){.assistant-typing{background:Canvas;border:1px solid CanvasText}.assistant-typing>span{background:CanvasText}}

/* A real handle owns the gesture; the message log keeps native vertical scrolling. */
.assistant-grip{display:none}
.assistant .assistant-guidance{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;column-gap:6px;row-gap:0}
.assistant-guidance a{display:inline-flex;align-items:center;min-height:24px;text-decoration:none;color:var(--chat-ink)}
@media(max-width:600px){
 .assistant-grip{display:flex;align-items:flex-start;justify-content:center;position:absolute;z-index:2;top:0;left:calc(50% - 44px);width:88px;height:44px;padding:10px 0 0;border:0;border-radius:16px;background:transparent;touch-action:none;user-select:none;cursor:grab}
 .assistant-grip span{display:block;width:40px;height:5px;border-radius:9px;background:#929698}
 .assistant-grip:active{cursor:grabbing}
 .assistant-panel{transform:translateY(var(--assistant-drag,0px));transition:transform .18s ease-out}
 .assistant-panel.is-dragging{transition:none;animation:none}
}
@media(prefers-reduced-motion:reduce){.assistant-panel{transition:none;animation:none}}
@media(forced-colors:active){.assistant-grip span{background:ButtonText}}

/* Paint scrolling and fixed chat layers opaquely, including WebKit compositing. */
.assistant-panel{isolation:isolate}
.assistant-heading,.assistant-messages,.assistant-form,.assistant-footer{background:#fff}
@media(max-width:600px){
 /* Independent paper behind the lower sheet: outside its moving/composited root.
    It extends past keyboard accessory gaps without covering the page above. */
 .assistant-floor{position:fixed;z-index:149;top:100vh;left:0;right:0;bottom:-100vh;bottom:-100lvh;background:#fff;pointer-events:none;border-radius:22px 22px 0 0}
}
@media(forced-colors:active){
 .assistant-heading,.assistant-messages,.assistant-form,.assistant-footer,.assistant-floor{background:Canvas}
}


/* Compact mobile sheet over the existing page. The root locates the sheet;
   only the panel and the real floor below the visible viewport paint white. */
.assistant-panel{z-index:1}
.assistant-panel:focus{outline:none}
.assistant-composer:focus-within{outline:none;border-color:#929598;box-shadow:0 2px 12px #11171b0d}
@media(max-width:600px){
 html.assistant-sheet-open .assistant{top:var(--assistant-viewport-top,0px);bottom:auto;height:var(--assistant-viewport-height,100dvh);display:flex;flex-direction:column;justify-content:flex-end;background:transparent;isolation:isolate}
 html.assistant-sheet-open body{overflow:hidden;overscroll-behavior:none}
 .assistant[data-input-focused=true] .assistant-panel,.assistant[data-keyboard=open] .assistant-panel{padding-bottom:0}
 .assistant[data-keyboard=open] .assistant-panel{height:min(500px,calc(var(--assistant-viewport-height,100dvh) - 24px));max-height:calc(var(--assistant-viewport-height,100dvh) - 24px)}
 .assistant[data-keyboard=open] .assistant-messages{min-height:0}
 .assistant[data-keyboard=open] textarea{max-height:clamp(44px,calc(var(--assistant-viewport-height,100dvh) - 260px),104px)}
 .assistant[data-keyboard=open][data-viewport-size=short] .assistant-panel{padding-top:0}
 .assistant[data-keyboard=open][data-viewport-size=short] .assistant-heading{padding:0 12px;min-height:44px}
 .assistant[data-keyboard=open][data-viewport-size=short] .assistant-grip{padding-top:9px}
 .assistant[data-keyboard=open][data-viewport-size=short] .assistant-footer{padding-bottom:6px}
 .assistant[data-keyboard=open][data-viewport-size=short] .assistant-guidance{margin-top:3px}

}
@media(forced-colors:active){.assistant-composer:focus-within{outline:2px solid Highlight;outline-offset:1px;box-shadow:none}}

/* Compact launcher invitation; conversation styles above stay unchanged. */
.assistant-hint{position:absolute;right:0;bottom:62px;display:flex;align-items:flex-start;gap:9px;width:288px;max-width:calc(100vw - 32px);padding:14px 16px;border:1px solid #e8e8e8;border-radius:18px;background:#fff;color:#171717;box-shadow:0 5px 22px #11111110;pointer-events:none;overflow-wrap:anywhere}
.assistant-hint::after{content:"";position:absolute;right:19px;bottom:-6px;width:11px;height:11px;background:#fff;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;transform:rotate(45deg)}
.assistant .assistant-hint>svg{width:18px;height:18px;margin-top:2px}
.assistant-hint>div{min-width:0}
.assistant-hint strong{display:block;font-size:14px;line-height:1.4;font-weight:600;letter-spacing:-.01em}
.assistant .assistant-hint p{margin:4px 0 0;font-size:14px;line-height:1.5;color:#5d6368}
@media(max-width:600px){.assistant-hint{right:max(16px,env(safe-area-inset-right));bottom:calc(60px + max(16px,env(safe-area-inset-bottom)))}.assistant-hint::after{right:18px}}
@media(forced-colors:active){.assistant .assistant-launcher{background:ButtonText;color:ButtonFace;border-color:ButtonText}.assistant-hint,.assistant-hint::after{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none}.assistant .assistant-hint p{color:CanvasText}}


/* Keep the established chat appearance within the new page typography. */
.assistant a,.assistant a:hover,.assistant-reset{text-decoration:none!important}
.assistant .assistant-send{width:auto;min-width:64px;padding:0 13px;border-radius:24px;font-size:12px;line-height:18px}
.assistant-panel:not([hidden]){animation:astox-chat-enter .28s cubic-bezier(.22,1,.36,1)}
@keyframes astox-chat-enter{from{opacity:1;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){
 .assistant .assistant-send{min-width:60px;padding-inline:11px}
}
.assistant-panel.is-dragging{animation:none}
@media(prefers-reduced-motion:reduce){.assistant-panel:not([hidden]){animation:none}}

/* One legible, compact help control with a full touch target. */
.assistant .assistant-launcher{display:flex;align-items:center;justify-content:center;width:76px;height:44px;min-height:44px;padding:0;border:1px solid #8c8c8c;border-radius:14px;background:#fafafa;color:#353535;box-shadow:none;forced-color-adjust:auto;transition:background-color .16s}
.assistant .assistant-launcher:hover{background:#f0f0f0}
.assistant-launcher-mark{display:flex;align-items:center;justify-content:center;gap:7px;padding:0 12px}
.assistant .assistant-launcher-mark svg{width:17px;height:17px}
.assistant-launcher-title{font-size:12px;line-height:18px;font-weight:500;letter-spacing:0;white-space:nowrap}
.assistant .assistant-launcher:focus-visible{outline:2px solid #31584a;outline-offset:4px}
.assistant .assistant-title-brand{font-size:14px;line-height:20px;font-weight:500;letter-spacing:.01em}
.assistant-welcome,.assistant-message:not(.assistant-message-user){display:block}
.assistant-welcome::before,.assistant-message:not(.assistant-message-user)::before{content:none;display:none}
.assistant .assistant-welcome strong,.assistant .assistant-message:not(.assistant-message-user) strong{position:static;display:block;width:auto;height:auto;padding:0;margin:0 0 6px 3px;overflow:visible;clip:auto;white-space:normal;font-size:10px;line-height:15px;font-weight:500;letter-spacing:.02em;color:var(--chat-muted)}
.assistant-typing{margin-left:0}
@media(forced-colors:active){.assistant .assistant-launcher,.assistant .assistant-launcher:hover{background:ButtonFace;color:ButtonText;border:1px solid ButtonText;box-shadow:none}.assistant .assistant-launcher:focus-visible{outline-color:Highlight}}

/* Keep the chat access in one predictable corner while the page scrolls. */
@media(max-width:900px){
 .assistant:has(.assistant-panel[hidden]){position:fixed;top:auto;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom) + var(--assistant-viewport-bottom,0px));left:auto;width:auto;height:auto;padding:0;background:transparent}
 .assistant:has(.assistant-panel[hidden]) .assistant-launcher{margin:0;translate:none;opacity:1;visibility:visible;transition:opacity .14s ease-out,background-color .16s,visibility 0s}
 .assistant:has(.assistant-panel[hidden]) .assistant-hint{display:none}
 .page-shell{padding-bottom:72px}
}
