/* Prevo Pulse — shared styles.
   Tailwind CDN is configured per-page in the <head>; this file holds overrides
   + animations that aren't easy to express in Tailwind classes. */

html, body { font-family: 'Barlow', ui-sans-serif, system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
html       { background: #F7F8FB; color: #0A1628; }
html.dark  { background: #0A1628; color: #E8ECF2; }

::-webkit-scrollbar       { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #D4DBE6; border-radius: 8px; }
.dark ::-webkit-scrollbar-thumb { background: #122A52; }
::-webkit-scrollbar-track { background: transparent; }

/* ----- Animations ----- */

@keyframes pulsedot { 0%,100% { opacity:1; transform:scale(1) } 50% { opacity:.35; transform:scale(1.4) } }
.pulse-dot { animation: pulsedot 1.4s ease-in-out infinite; }

@keyframes slideup { from { opacity:0; transform:translateY(6px) } to { opacity:1; transform:translateY(0) } }
.line-in { animation: slideup .3s ease-out both; }

@keyframes slidein-right { from { opacity:0; transform:translateX(10px) } to { opacity:1; transform:translateX(0) } }
.slide-in-right { animation: slidein-right .35s ease-out both; }

@keyframes fadein { from { opacity:0 } to { opacity:1 } }
.fade-in { animation: fadein .4s ease-out both; }

@keyframes blink { 0%,49% { opacity:1 } 50%,100% { opacity:0 } }
.caret::after {
  content: '▌';
  color: #004fa2;
  margin-left: 2px;
  animation: blink 1s steps(1) infinite;
}
.dark .caret::after { color: #4AA3E0; }

/* ----- Waveform (voice → text) ----- */

.wave {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 16px;
}
.wave span {
  display: inline-block;
  width: 2px;
  background: currentColor;
  border-radius: 1px;
  animation: wavebar 0.9s ease-in-out infinite;
}
.wave span:nth-child(1) { height: 20%;  animation-delay: -.9s; }
.wave span:nth-child(2) { height: 60%;  animation-delay: -.75s; }
.wave span:nth-child(3) { height: 90%;  animation-delay: -.6s; }
.wave span:nth-child(4) { height: 40%;  animation-delay: -.45s; }
.wave span:nth-child(5) { height: 70%;  animation-delay: -.3s; }
.wave span:nth-child(6) { height: 30%;  animation-delay: -.15s; }
.wave span:nth-child(7) { height: 80%;  animation-delay: 0s; }
@keyframes wavebar { 0%,100% { transform: scaleY(0.4) } 50% { transform: scaleY(1) } }

/* ----- Hairline divider ----- */
.hairline {
  height: 1px;
  background: linear-gradient(to right, transparent, currentColor, transparent);
  opacity: .15;
}

/* ----- Utility ----- */
.track-wide-brand { letter-spacing: 0.28em; }
.no-arrow::-webkit-outer-spin-button,
.no-arrow::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Prevost logo tinting: the source SVG is fill='#004fa2'. In the black header
   we want it white. Use a CSS filter to invert hue → white. */
.logo-invert { filter: brightness(0) invert(1); }
.logo-blue   { /* keep original #004fa2 */ }

/* ----- Print-safe: keep transcripts readable if someone prints ----- */
@media print {
  aside, header button { display: none !important; }
  body { background: #fff; color: #000; }
}
