/* 全站客服浮栏：与页面共用字体，图标保留各自识别色。 */
.contact-dock { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 25; font-family: "Microsoft YaHei", "PingFang SC", sans-serif; color: #303239; }
.contact-tools { width: 72px; padding: 5px; border: 1px solid #e9e7e1; border-radius: 16px; background: #fff; box-shadow: 0 8px 32px #28251412, 0 2px 6px #28251405; }
.contact-tool { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; width: 60px; min-height: 76px; padding: 10px 2px; border: 0; border-radius: 11px; color: #41444b; background: transparent; font: inherit; cursor: pointer; transition: color .18s, background-color .18s; }
.contact-tool > span { white-space: nowrap; font-size: 11px; line-height: 16px; }
.contact-icon { width: 27px; height: 27px; flex-shrink: 0; }
.contact-icon-qq { color: #282d35; }
.contact-icon-wecom { color: #3884e9; }
.contact-tool:hover, .contact-tool[aria-expanded="true"] { color: #73520e; background: #fff5d9; }
.contact-tool[aria-expanded="true"] { box-shadow: inset 0 0 0 1px #f5e5b5; }
.contact-top { position: relative; margin-top: 5px; }
.contact-top::before { content: ""; position: absolute; top: -3px; left: 14px; right: 14px; height: 1px; background: #eeede9; }
.contact-dock :focus-visible { outline: 2px solid #bc861a; outline-offset: 3px; }
.contact-panel { position: absolute; right: calc(100% + 14px); top: 50%; transform: translateY(-50%); width: 286px; max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain; padding: 26px 24px 20px; border: 1px solid #e9e5db; border-radius: 16px; background: #fff; box-shadow: 0 16px 54px #252a351c, 0 2px 8px #252a3508; text-align: center; line-height: 1.6; }
.contact-panel[hidden] { display: none; }
.contact-panel:focus { outline: none; }
.contact-close { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 28px; height: 28px; padding: 4px; border: 0; border-radius: 50%; background: transparent; color: #888b91; cursor: pointer; }
.contact-close svg { width: 18px; height: 18px; }
.contact-close:hover { background: #f5f5f3; color: #303239; }
.contact-panel h2 { margin: 0 0 8px; font: 600 19px/1.5 "Microsoft YaHei", "PingFang SC", sans-serif; color: #2d3037; letter-spacing: 0; }
.contact-description, .contact-unavailable { margin: 0; color: #83858b; font-size: 12px; line-height: 1.9; }
.contact-number { margin: 20px 0; padding: 15px 16px; border: 1px solid #eeede8; border-radius: 9px; background: #fafaf8; }
.contact-number > span { display: block; margin-bottom: 5px; color: #8b8d92; font-size: 11px; }
.contact-number > strong { color: #303239; font: 600 26px/1.4 "Segoe UI", sans-serif; letter-spacing: 1px; user-select: all; }
.contact-primary { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 42px; padding: 9px 12px; border: 1px solid #f3c23c; border-radius: 7px; background: #ffcc42; color: #493810; font-size: 13px; font-weight: 600; text-decoration: none; }
.contact-primary:hover { background: #ffd563; }
.contact-primary .icon { width: 17px; height: 17px; }
.contact-copy { display: block; width: 100%; margin-top: 8px; padding: 7px 0; border: 0; background: transparent; color: #777a82; font: inherit; font-size: 12px; cursor: pointer; }
.contact-copy:hover { color: #846016; }
.contact-feedback { margin: 0; color: #558265; font-size: 11px; text-align: center; }
.contact-feedback:empty { display: none; }
.contact-qr { margin: 18px 0 14px; padding: 12px 12px 10px; border: 1px solid #efeee8; border-radius: 10px; background: #fff; text-align: center; }
.contact-qr img { display: block; width: 180px; height: 180px; max-width: 100%; object-fit: contain; margin: 0 auto; }
.contact-qr figcaption { margin-top: 8px; color: #777a82; font-size: 12px; }
.contact-panel .contact-description + .contact-primary { margin-top: 16px; }
@media (max-width: 760px) {
  .contact-dock { right: max(12px, env(safe-area-inset-right)); top: auto; bottom: calc(16px + env(safe-area-inset-bottom)); transform: none; }
  .contact-tools { display: flex; width: auto; padding: 4px; border-radius: 13px; }
  .contact-tool { width: 56px; min-height: 54px; padding: 5px 2px; gap: 3px; border-radius: 9px; }
  .contact-tool > span { font-size: 10px; line-height: 15px; }
  .contact-icon { width: 22px; height: 22px; }
  .contact-top { margin: 0 0 0 4px; }
  .contact-top::before { top: 10px; bottom: 10px; left: -3px; right: auto; width: 1px; height: auto; }
  .contact-panel { top: auto; bottom: calc(100% + 12px); right: 0; transform: none; width: min(286px, calc(100vw - 24px)); max-height: calc(100dvh - 110px - env(safe-area-inset-bottom)); padding: 24px 22px 18px; }
  .public-site .site-footer { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
  .auth-page .auth-main { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) { .contact-tool { transition: none; } }
