.sa-trigger, .sa-panel { --sa-ink:#164c43; --sa-muted:#6c756f; --sa-line:#dedfd6; --sa-paper:#fffdf7; box-sizing:border-box; }
.sa-trigger { position:fixed; right:22px; bottom:110px; z-index:45; display:flex; align-items:center; gap:8px; min-height:48px; padding:7px 16px 7px 10px; border:1px solid #ffffff80; border-radius:28px; color:#fff; background:linear-gradient(135deg,#174f45,#2b796b); box-shadow:0 7px 24px #164c432b; font-family:inherit; font-size:14px; font-weight:650; white-space:nowrap; cursor:pointer; }
.sa-trigger[hidden], .sa-panel [hidden] { display:none !important; }
.sa-avatar { display:block; width:34px; height:34px; flex:none; overflow:visible; pointer-events:none; }
.sa-avatar-float { transform-box:fill-box; transform-origin:50% 60%; animation:sa-avatar-float 5.2s ease-in-out infinite; }
.sa-avatar-eyes { transform-box:fill-box; transform-origin:center; animation:sa-avatar-blink 6.4s ease-in-out infinite; }
.sa-avatar-halo { transform-box:fill-box; transform-origin:center; opacity:.2; animation:sa-avatar-breathe 5.2s ease-in-out infinite; }
.sa-avatar-spark { transform-box:fill-box; transform-origin:center; opacity:.65; animation:sa-avatar-spark 4.8s ease-in-out infinite; }
.sa-avatar-smile { transform-box:fill-box; transform-origin:center; transition:transform .2s ease; }
.sa-trigger:hover .sa-avatar-smile, .sa-trigger:focus-visible .sa-avatar-smile { transform:scaleX(1.15); }
.sa-trigger[aria-expanded="true"] * { animation-play-state:paused; }
@keyframes sa-avatar-float { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-2px) rotate(3deg); } }
@keyframes sa-avatar-blink { 0%,89%,94%,100% { transform:scaleY(1); } 91.5% { transform:scaleY(.12); } }
@keyframes sa-avatar-breathe { 0%,100% { opacity:.16; transform:scale(.92); } 50% { opacity:.36; transform:scale(1.04); } }
@keyframes sa-avatar-spark { 0%,100% { opacity:.45; transform:scale(.85) rotate(-8deg); } 50% { opacity:1; transform:scale(1.08) rotate(8deg); } }
.sa-panel { position:fixed; inset:auto 22px calc(var(--sa-trigger-bottom,24px) + 60px) auto; width:min(410px,calc(100vw - 28px)); height:min(640px,calc(100dvh - var(--sa-trigger-bottom,24px) - 90px)); max-height:calc(var(--sa-viewport-height,100dvh) - 24px); max-width:calc(100vw - 24px); margin:0; padding:0; border:1px solid #e3e2d7; border-radius:22px; background:var(--sa-paper); color:#253b34; box-shadow:0 24px 80px #163c4329; z-index:60; overflow:hidden; font-family:inherit; }
.sa-panel[open] { display:flex; flex-direction:column; }
.sa-panel::backdrop { background:#172f2861; }
.sa-panel button, .sa-panel input, .sa-panel textarea { font-family:inherit; box-sizing:border-box; }
.sa-panel button { cursor:pointer; }
.sa-panel button:disabled { opacity:.45; cursor:default; }
.sa-panel :focus-visible, .sa-trigger:focus-visible { outline:3px solid #a47722; outline-offset:3px; }
.sa-header { display:flex; justify-content:space-between; align-items:center; flex:none; gap:10px; padding:18px 18px 14px; background:linear-gradient(120deg,#f5eedb,#e9f2eb); border-bottom:1px solid var(--sa-line); }
.sa-header h2 { margin:0 0 4px; font-size:18px; line-height:1.4; color:var(--sa-ink); }
.sa-header small { display:block; color:var(--sa-muted); font-size:11px; }
.sa-tools { display:flex; flex:none; gap:6px; }
.sa-tools button { min-width:32px; min-height:34px; border:0; border-radius:9px; padding:6px 8px; background:#ffffffb0; color:var(--sa-ink); font-size:12px; }
.sa-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); flex:none; gap:5px; padding:9px 12px; border-bottom:1px solid var(--sa-line); }
.sa-tabs button { border:0; border-radius:9px; padding:9px 4px; background:transparent; color:var(--sa-muted); font-size:13px; white-space:nowrap; }
.sa-tabs button[aria-pressed="true"] { background:#e6eee6; color:var(--sa-ink); font-weight:650; }
.sa-chat { display:flex; flex-direction:column; min-height:0; flex:1; }
.sa-transcript { min-height:0; flex:1; overflow:auto; overscroll-behavior:contain; padding:16px 14px; }
.sa-welcome { font-size:16px; line-height:1.8; font-weight:600; margin:4px 0 16px; }
.sa-suggestions { display:grid; gap:8px; }
.sa-suggestions button, .sa-faq button { text-align:left; width:100%; font-size:13px; line-height:1.6; color:var(--sa-ink); border:1px solid var(--sa-line); background:#fff; padding:11px 12px; border-radius:11px; box-shadow:none; }
.sa-message { margin:0 0 14px; padding:12px; border:1px solid var(--sa-line); border-radius:13px; background:#fff; overflow-wrap:anywhere; }
.sa-message>small { display:block; color:var(--sa-muted); font-size:11px; }
.sa-message>p, .sa-source p { margin:7px 0; white-space:pre-wrap; font-size:13px; line-height:1.8; }
.sa-user { margin-left:32px; background:#edf2e9; border-color:#dee8d9; }
.sa-source { margin-top:8px; padding:9px; border-radius:9px; background:#f7f5ed; font-size:12px; }
.sa-source summary { cursor:pointer; color:var(--sa-ink); line-height:1.7; }
.sa-source p { max-height:240px; overflow:auto; overscroll-behavior:contain; font-size:12px; }
.sa-source a { display:inline-block; color:var(--sa-ink); font-size:12px; margin-top:6px; }
.sa-feedback { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.sa-feedback button { border:1px solid var(--sa-line); border-radius:7px; padding:5px 8px; font-size:11px; color:var(--sa-ink); background:#fff; box-shadow:none; }
.sa-feedback button[aria-pressed="true"] { background:#e4eee5; border-color:#8eaa99; }
.sa-composer { display:flex; align-items:flex-end; flex:none; gap:8px; padding:10px 12px; border-top:1px solid var(--sa-line); }
.sa-composer textarea { width:100%; min-width:0; flex:1; min-height:58px; max-height:90px; border:1px solid var(--sa-line); border-radius:11px; resize:none; padding:10px; font-size:16px; line-height:1.4; background:#fff; color:#253b34; }
.sa-composer button { flex:none; padding:11px 13px; border:0; border-radius:10px; background:var(--sa-ink); color:#fff; font-size:13px; }
.sa-privacy { flex:none; padding:0 13px 12px; color:var(--sa-muted); font-size:10px; line-height:1.7; }
.sa-privacy span { display:block; }
.sa-error { flex:none; padding:9px 12px; margin:0; background:#fff0e7; color:#943c23; font-size:12px; line-height:1.6; }
.sa-faq, .sa-human { padding:16px; flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
.sa-faq input { width:100%; min-width:0; font-size:16px; border-radius:9px; padding:11px; border:1px solid var(--sa-line); background:#fff; }
#sa-faq-list { display:grid; gap:8px; margin-top:14px; }
.sa-eyebrow { font-size:11px; letter-spacing:2px; color:var(--sa-muted); }
.sa-human h3 { font-size:22px; margin:10px 0; line-height:1.6; color:var(--sa-ink); }
.sa-human p { font-size:13px; line-height:1.9; color:var(--sa-muted); }
.sa-wechat { display:block; padding:15px; margin:18px 0; border:1px dashed #b8cbb9; border-radius:12px; background:#eef3e8; font-size:22px; letter-spacing:1px; color:var(--sa-ink); }
.sa-human>a { display:block; padding:12px 0; border-bottom:1px solid var(--sa-line); color:var(--sa-ink); font-size:13px; }
.sa-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(max-width:600px) {
  .sa-trigger { right:12px; gap:6px; padding:6px 12px 6px 8px; font-size:12px; }
  .sa-panel { inset:auto 10px calc(max(10px,env(safe-area-inset-bottom)) + var(--sa-keyboard-gap,0px)) 10px; width:auto; height:min(680px,calc(var(--sa-viewport-height,100dvh) - 24px - env(safe-area-inset-bottom))); border-radius:20px; }
  .sa-header { padding:14px; }
  .sa-privacy { padding-bottom:max(10px,env(safe-area-inset-bottom)); }
  .sa-trigger[aria-expanded="true"] { visibility:hidden; }
}
@media(prefers-reduced-motion:reduce) { .sa-panel *, .sa-trigger, .sa-trigger * { scroll-behavior:auto; transition:none; animation:none; } }
