:root { --passto-size: 60px; --passto-right: 29px; --passto-ai-bottom: 48px; --passto-gap: 12px; --passto-gold: #d0bf56; }
@media (min-width: 601px) { :root { --passto-right: calc(29px - (100vw - 100%)); } }
body button.passtoAI-chatBtn { right: var(--passto-right); bottom: var(--passto-ai-bottom); width: var(--passto-size); height: var(--passto-size); z-index: 9999; }
body button.passtoAI-chatBtn { background: var(--passto-gold); color: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / 18%); }
body button.passtoAI-chatBtn { transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease; }
body button.passtoAI-chatBtn:hover, .passto-contact__trigger:hover { background: #dfd077; box-shadow: 0 10px 24px rgb(0 0 0 / 23%); transform: translateY(-2px); }
body button.passtoAI-chatBtn { opacity: 1; animation: none; }
body button.passtoAI-chatBtn { visibility: hidden; }
body.passto-contact-ready button.passtoAI-chatBtn { visibility: visible; }
@keyframes passto-ai-spin { to { transform: rotate(360deg); } }
.PasstoAI-chat-button { display: none !important; }
#PasstoAI-chat-container { box-sizing: border-box !important; right: var(--passto-right) !important; bottom: calc(var(--passto-ai-bottom) + var(--passto-size) + 10px) !important; width: min(420px, calc(100vw - var(--passto-right) * 2)) !important; height: min(640px, calc(100vh - var(--passto-ai-bottom) - var(--passto-size) - 26px)) !important; z-index: 2147483647 !important; }
#PasstoAI-chat-container:not(.passto-ai-chat--ready) { visibility: hidden !important; pointer-events: none !important; }
.passto-contact { position: fixed; z-index: 2147483646; right: var(--passto-right); bottom: calc(var(--passto-ai-bottom) + var(--passto-size) + var(--passto-gap)); display: flex; flex-direction: column; align-items: center; gap: 10px; font-family: inherit; }
.passto-contact__shared-tip { position: fixed; z-index: 2147483647; transform: translateY(-50%); padding: 8px 12px; border-radius: 8px; background: #000; color: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / 18%); font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; font-size: 13px; line-height: 1.35; font-weight: 500; white-space: nowrap; pointer-events: none; }
.passto-contact__shared-tip[hidden] { display: none; }
.passto-contact__shared-tip--loading { padding-left: 34px; }
.passto-contact__shared-tip--loading::before { content: ''; position: absolute; left: 12px; top: calc(50% - 7px); width: 14px; height: 14px; border: 2px solid rgb(255 255 255 / 35%); border-top-color: #fff; border-radius: 50%; animation: passto-ai-spin .8s linear infinite; }
.passto-contact__shared-tip::after { content: ''; position: absolute; left: 100%; top: 50%; transform: translateY(-50%); border: 5px solid transparent; border-left-color: #000; }
.passto-contact__trigger, .passto-contact__channel { box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: var(--passto-size); height: var(--passto-size); border: 0; border-radius: 50%; background: var(--passto-gold); color: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / 18%); cursor: pointer; text-decoration: none; transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.passto-contact__channels { position: absolute; bottom: calc(100% + 10px); right: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px) scale(.96); transform-origin: bottom center; transition: opacity .24s ease, transform .24s ease, visibility .24s ease; }
.passto-contact--open .passto-contact__channels { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.passto-contact__channel { transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.passto-contact[hidden] { display: none; }
.passto-contact__notice { position: absolute; right: calc(100% + 12px); bottom: 8px; padding: 8px 12px; border-radius: 8px; background: #242424; color: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / 18%); font-size: 13px; line-height: 1.35; white-space: nowrap; pointer-events: none; }
.passto-contact__notice[hidden] { display: none; }
.passto-contact__channel { position: relative; }
.passto-contact__channel span:not(.passto-contact__icon) { display: none; }
.passto-contact__trigger:hover, .passto-contact__channel:hover { background: #dfd077; box-shadow: 0 10px 24px rgb(0 0 0 / 23%); }
.passto-contact__trigger:hover { transform: translateY(-2px); }
.passto-contact--open .passto-contact__channel:hover { transform: translateY(-2px); }
.passto-contact__trigger:focus-visible, .passto-contact__channel:focus-visible, body button.passtoAI-chatBtn:focus-visible { outline: 3px solid #242424; outline-offset: 3px; }
.passto-contact__icon { display: block; width: 30px; height: 30px; background: currentColor; -webkit-mask: var(--passto-icon) center / contain no-repeat; mask: var(--passto-icon) center / contain no-repeat; }
body button.passtoAI-chatBtn svg { width: 30px; height: 30px; }
.passto-contact__icon--support { --passto-icon: url('/images/contact/headphones-outline.svg'); }
.passto-contact__close { display: none; width: 30px; height: 30px; flex: none; }
.passto-contact__trigger[aria-expanded="true"] .passto-contact__icon--support { display: none; }
.passto-contact__trigger[aria-expanded="true"] .passto-contact__close { display: block; }
.passto-contact__tooltip, body button.passtoAI-chatBtn .on-hover-text { display: none !important; }
.passto-contact--open .passto-contact__tooltip { display: none; }
.passto-contact__tooltip::after, body button.passtoAI-chatBtn .on-hover-text::after { content: ''; position: absolute; left: 100%; top: 50%; transform: translateY(-50%); border: 5px solid transparent; border-left-color: #242424; }
body button.passtoAI-chatBtn .on-hover-text::before { display: none; }
@media (hover: hover) { .passto-contact__trigger:hover .passto-contact__tooltip, body button.passtoAI-chatBtn:hover .on-hover-text { opacity: 1; visibility: visible; transform: translate(0, -50%); } }
.passto-contact__trigger:focus-visible .passto-contact__tooltip, body button.passtoAI-chatBtn:focus-visible .on-hover-text { opacity: 1; visibility: visible; transform: translate(0, -50%); }
.passto-contact__icon--message-circle-outline { --passto-icon: url('/images/contact/message-circle-outline.svg'); }
.passto-contact__icon--paper-plane-outline { --passto-icon: url('/images/contact/paper-plane-outline.svg'); }
.passto-contact__icon--email-outline { --passto-icon: url('/images/contact/email-outline.svg'); }
.passto-contact__icon--phone-outline { --passto-icon: url('/images/contact/phone-outline.svg'); }
@media (max-width: 600px) { :root { --passto-size: 48px; --passto-right: max(16px, env(safe-area-inset-right)); --passto-ai-bottom: calc(20px + env(safe-area-inset-bottom)); --passto-gap: 10px; } .passto-contact__icon, .passto-contact__close { width: 26px; height: 26px; } body button.passtoAI-chatBtn { min-width: var(--passto-size); } body button.passtoAI-chatBtn svg { width: 26px; height: 26px; } }
@media (max-width: 600px) { #PasstoAI-chat-container { inset: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important; top: 0 !important; width: 100vw !important; max-width: none !important; height: 100vh !important; height: 100dvh !important; max-height: none !important; border-radius: 0 !important; } }
@media (hover: none) { .passto-contact__shared-tip:not(.passto-contact__shared-tip--loading) { display: none; } }
@media (max-width: 600px) and (max-height: 650px) { .passto-contact, .passto-contact__channels { gap: 6px; } }
@media (prefers-reduced-motion: reduce) { .passto-contact__trigger, .passto-contact__channels, .passto-contact__channel, .passto-contact__tooltip, body button.passtoAI-chatBtn .on-hover-text { transition: none; } .passto-ai-status__spinner { animation-duration: 2s; } }
