/* === Text to Speech Reader — Tool Styles === */

.ttsr-page {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 1rem 3rem;
}

.ttsr-quick-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0.75rem 0 1.5rem;
}

/* Voice / rate / pitch / volume controls */
.ttsr-controls-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
}
.ttsr-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ttsr-field-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-secondary);
}
.ttsr-field-label strong {
  color: var(--text-primary);
  font-weight: 700;
}
.ttsr-select {
  width: 100%;
}

/* Range sliders */
.ttsr-range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  border-radius: 999px;
  background: var(--border-color);
  outline: none;
  cursor: pointer;
}
.ttsr-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  transition: transform var(--transition);
}
.ttsr-range::-webkit-slider-thumb:hover { transform: scale(1.15); }
.ttsr-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
  cursor: pointer;
}

/* Error */
.ttsr-error {
  padding: 10px 14px;
  border-radius: 8px;
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #ef4444;
  font-size: 0.875rem;
  margin: 1rem 0;
}
.ttsr-error[hidden] { display: none; }

/* Playback actions */
.ttsr-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 1.5rem 0 0.75rem;
}
.ttsr-actions [hidden] { display: none; }

.ttsr-status {
  font-size: 0.85rem;
  color: var(--text-secondary);
  min-height: 1.2em;
  margin: 0 0 0.5rem;
}

/* Live word-highlight preview */
.ttsr-preview {
  max-height: 260px;
  overflow-y: auto;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--text-secondary);
  white-space: pre-wrap;
  word-break: break-word;
}
.ttsr-preview:empty::before {
  content: attr(data-empty-text);
  color: var(--text-secondary);
  opacity: 0.7;
}
.ttsr-word {
  transition: background-color var(--transition), color var(--transition);
  border-radius: 3px;
}
.ttsr-word.is-active {
  background: var(--accent-light);
  color: var(--accent);
  font-weight: 600;
}

/* Common uses grid */
.ttsr-copy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.ttsr-copy-grid article h3 {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 6px;
}
.ttsr-copy-grid article p {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.5;
  margin: 0;
}

/* Responsive */
@media (max-width: 600px) {
  .ttsr-actions { flex-direction: column; }
  .ttsr-actions .button, .ttsr-actions .button-outline { width: 100%; }
}
