/* ============ 语音对讲悬浮窗（全页面常驻） ============ */
#svc-talk-widget { position: fixed; right: 18px; bottom: 18px; z-index: 9999; font-family: inherit; }
.svc-talk-fab { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px;
  min-width: 64px; padding: 10px 12px; border: none; border-radius: 16px; cursor: pointer;
  background: #2d6a24; color: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.svc-talk-fab:hover { background: #245a1c; }
.svc-talk-fab-text { font-size: 14px; font-weight: 700; line-height: 1; }
.svc-talk-fab-state { font-size: 10px; opacity: .85; line-height: 1; }
.svc-talk-badge { position: absolute; top: -6px; right: -6px; background: #d92d20; color: #fff;
  font-size: 10px; font-weight: 700; border-radius: 10px; padding: 2px 6px; min-width: 18px; text-align: center; }
.svc-talk-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.svc-talk-dot.on { background: #22c55e; box-shadow: 0 0 4px #22c55e; }
.svc-talk-dot.off { background: #9ca3af; }
.svc-talk-fab .svc-talk-dot { position: absolute; top: 6px; left: 8px; }
.svc-talk-panel { width: 360px; max-width: calc(100vw - 24px); height: 520px; max-height: calc(100vh - 90px);
  display: flex; flex-direction: column; background: #fff; border: 1px solid #e4e7ec; border-radius: 14px;
  box-shadow: 0 10px 32px rgba(0,0,0,.28); overflow: hidden; }
.svc-talk-title { display: flex; align-items: center; gap: 6px; padding: 8px 10px;
  background: #2d6a24; color: #fff; }
.svc-talk-online-text { font-size: 11px; opacity: .9; }
.svc-talk-select { flex: 1; min-width: 0; margin-left: 4px; border: none; border-radius: 6px;
  padding: 4px 6px; font-size: 12px; background: rgba(255,255,255,.92); color: #1f2937; }
.svc-talk-min { border: none; background: rgba(255,255,255,.18); color: #fff; border-radius: 6px;
  width: 26px; height: 24px; cursor: pointer; font-size: 13px; line-height: 1; }
.svc-talk-min:hover { background: rgba(255,255,255,.32); }
.svc-talk-messages { flex: 1; overflow-y: auto; padding: 10px; display: flex; flex-direction: column; gap: 8px; background: #f6f8f4; }
.svc-talk-loading { padding: 24px; text-align: center; color: #667085; font-size: 12px; }
.svc-talk-msg { max-width: 80%; align-self: flex-start; }
.svc-talk-msg.own { align-self: flex-end; text-align: right; }
.svc-talk-meta { font-size: 10px; color: #98a2b3; margin: 0 4px 2px; }
.svc-talk-bubble { display: inline-block; background: #fff; border: 1px solid #e4e7ec; border-radius: 10px;
  padding: 7px 10px; font-size: 13px; line-height: 1.5; text-align: left; word-break: break-word; }
.svc-talk-msg.own .svc-talk-bubble { background: #e4f0da; border-color: #cde3bd; }
.svc-talk-voice { border: none; background: none; color: #175cd3; font-size: 13px; cursor: pointer; padding: 2px 4px; }
.svc-talk-voice.playing { color: #2d6a24; font-weight: 700; }
.svc-talk-img { max-width: 200px; max-height: 200px; border-radius: 8px; display: block; }
.svc-talk-file { color: #175cd3; text-decoration: none; }
.svc-talk-loc { display: inline-block; margin-left: 6px; font-size: 11px; color: #175cd3; }
.svc-talk-toolbar { display: flex; align-items: center; gap: 8px; padding: 4px 10px; border-top: 1px solid #f2f4f7; background: #fafafa; }
.svc-talk-autoplay { display: flex; align-items: center; gap: 4px; font-size: 11px; color: #475467; }
.svc-talk-autoplay input[type="checkbox"] { width: 14px !important; height: 14px !important; min-width: 14px;
  margin: 0 !important; padding: 0 !important; accent-color: #2d6a24; flex: none; }
.svc-talk-status { margin-left: auto; font-size: 11px; color: #b54708; }
.svc-talk-compose { display: flex; align-items: center; gap: 6px; padding: 8px 10px; border-top: 1px solid #f2f4f7; background: #fff; }
.svc-talk-compose .input { flex: 1; min-width: 0; font-size: 13px; padding: 7px 10px; }
.svc-talk-ptt, .svc-talk-more { border: 1px solid #d0d5dd; background: #fff; border-radius: 8px;
  width: 36px; height: 34px; cursor: pointer; font-size: 15px; user-select: none; -webkit-user-select: none; touch-action: none; }
.svc-talk-ptt:active { background: #d92d20; border-color: #d92d20; }
.svc-talk-readonly { text-align: center; color: #667085; font-size: 12px; padding: 10px; border-top: 1px solid #f2f4f7; }
.svc-talk-menu { position: absolute; right: 8px; bottom: 60px; display: flex; flex-direction: column; gap: 2px;
  background: #fff; border: 1px solid #e4e7ec; border-radius: 10px; box-shadow: 0 6px 20px rgba(0,0,0,.2); padding: 6px; }
.svc-talk-menu button { border: none; background: none; text-align: left; padding: 8px 14px; font-size: 13px;
  cursor: pointer; border-radius: 6px; white-space: nowrap; }
.svc-talk-menu button:hover { background: #f2f4f7; }
.svc-talk-rec-overlay { position: fixed; inset: 0; z-index: 10000; background: rgba(0,0,0,.45);
  display: flex; align-items: center; justify-content: center; pointer-events: none; }
.svc-talk-rec-card { background: #fff; border-radius: 16px; padding: 28px 40px; text-align: center; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.svc-talk-rec-pulse { font-size: 42px; animation: svcTalkPulse 1s ease-in-out infinite; }
.svc-talk-rec-text { font-size: 16px; font-weight: 700; margin-top: 8px; }
.svc-talk-rec-hint { font-size: 12px; color: #667085; margin-top: 6px; }
@keyframes svcTalkPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.25); opacity: .6; } }
@media (max-width: 720px) {
  #svc-talk-widget { right: 10px; bottom: 10px; }
  .svc-talk-panel { width: calc(100vw - 20px); height: min(70vh, 560px); }
}
/* 检修记录卡片（服务端广播的 record 消息） */
.svc-talk-record {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
  min-width: 160px;
}
.svc-talk-record-title {
  font-size: 11px;
  font-weight: 600;
  color: #2d6a24;
}
.svc-talk-record-loc {
  font-size: 14px;
  font-weight: 600;
  color: #1f2329;
}
.svc-talk-record-line {
  font-size: 12px;
  color: #5f6368;
}
.svc-talk-record-cta {
  margin-top: 3px;
  font-size: 11px;
  color: #175cd3;
}
