.tts-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 4px;
      padding: 4px 10px;
      margin-top: 6px;
      margin-right: 6px;
      border: 1px solid rgba(var(--primary-rgb, 42, 102, 89), 0.25);
      border-radius: 16px;
      background: rgba(var(--primary-rgb, 42, 102, 89), 0.06);
      color: var(--text-secondary, #6b7280);
      cursor: pointer;
      font-size: 12px;
      transition: all 0.2s ease;
      vertical-align: middle;
  }
  .tts-btn:hover {
      background: rgba(var(--primary-rgb, 42, 102, 89), 0.14);
      color: var(--primary, #2A6659);
      border-color: rgba(var(--primary-rgb, 42, 102, 89), 0.4);
  }
  .tts-btn.tts-loading {
      opacity: 0.6;
      cursor: wait;
      animation: tts-pulse 1s ease-in-out infinite;
  }
  .tts-btn.tts-playing {
      background: rgba(var(--primary-rgb, 42, 102, 89), 0.18);
      color: var(--primary, #2A6659);
      border-color: rgba(var(--primary-rgb, 42, 102, 89), 0.5);
      animation: tts-glow 1.5s ease-in-out infinite;
  }
  @keyframes tts-pulse {
      0%, 100% { opacity: 0.6; }
      50% { opacity: 0.3; }
  }
  @keyframes tts-glow {
      0%, 100% { box-shadow: 0 0 0 0 rgba(var(--primary-rgb, 42, 102, 89), 0.2); }
      50% { box-shadow: 0 0 8px 2px rgba(var(--primary-rgb, 42, 102, 89), 0.15); }
  }
