/* SOMA · Calibragem de voz do médico — modal com karaokê + forma de onda + guard de áudio.
   Aditivo e escopado por .somacal- (não conflita com a UI do Atendimento). */
.somacal-ov{
  position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center;
  padding:16px; background:rgba(5,11,23,.62); backdrop-filter:blur(3px);
}
.somacal-modal{
  --cal-teal:#02B8BF; --cal-navy:#050B17; --cal-ink:#0b1622; --cal-ink2:#41556b;
  --cal-surface:#ffffff; --cal-line:#dbe4ef; --cal-hi:#e8fbfc;
  --cal-ok:#12a150; --cal-warn:#c07a0a; --cal-bad:#c23b34;
  width:100%; max-width:600px; background:var(--cal-surface); color:var(--cal-ink);
  border-radius:16px; padding:22px 24px; box-shadow:0 24px 70px rgba(0,0,0,.34);
  font-family:inherit; box-sizing:border-box;
}
@media (prefers-color-scheme:dark){
  .somacal-modal{ --cal-ink:#e8eef6; --cal-ink2:#9db0c6; --cal-surface:#0d1a2d; --cal-line:#1d3049;
    --cal-hi:#08343a; --cal-ok:#43d68a; --cal-warn:#f0c24e; --cal-bad:#f18b83; }
}
.somacal-modal h3{ margin:0 0 4px; font-size:18px; font-weight:650; }
.somacal-sub{ margin:0 0 14px; font-size:12.5px; color:var(--cal-ink2); line-height:1.5; }

/* karaokê */
.somacal-read{
  font-size:16.5px; line-height:1.72; letter-spacing:.1px; margin:0 0 14px; padding:14px 16px;
  border-radius:12px; background:color-mix(in srgb, var(--cal-teal) 6%, transparent);
  border:1px solid var(--cal-line); max-height:200px; overflow:auto;
}
.somacal-read .w{ color:var(--cal-ink2); transition:color .18s ease, background .18s ease; border-radius:4px; }
.somacal-read .w.done{ color:var(--cal-ink); }
.somacal-read .w.cur{ color:var(--cal-navy); background:var(--cal-teal); padding:1px 2px; }
@media (prefers-color-scheme:dark){ .somacal-read .w.cur{ color:#04222a; } }

/* forma de onda */
.somacal-wave{
  width:100%; height:64px; display:block; border-radius:10px; margin:0 0 10px;
  background:color-mix(in srgb, var(--cal-navy) 5%, transparent); border:1px solid var(--cal-line);
}
/* meter + guard */
.somacal-meterwrap{ height:8px; border-radius:99px; background:var(--cal-line); overflow:hidden; margin:0 0 8px; }
.somacal-meter{ height:100%; width:0%; background:var(--cal-teal); border-radius:99px; transition:width .16s linear; }
.somacal-guard{
  display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; min-height:20px;
  margin:0 0 14px; color:var(--cal-ink2);
}
.somacal-guard .dot{ width:9px; height:9px; border-radius:50%; background:var(--cal-ink2); flex:0 0 auto; }
.somacal-guard.ok{ color:var(--cal-ok); } .somacal-guard.ok .dot{ background:var(--cal-ok); }
.somacal-guard.warn{ color:var(--cal-warn); } .somacal-guard.warn .dot{ background:var(--cal-warn); }
.somacal-guard.bad{ color:var(--cal-bad); } .somacal-guard.bad .dot{ background:var(--cal-bad); }
.somacal-guard.ok .dot{ animation:somacal-pulse 1.1s ease-in-out infinite; }

.somacal-save{ display:flex; gap:8px; align-items:flex-start; font-size:12.5px; margin:0 0 16px; cursor:pointer; color:var(--cal-ink2); }
.somacal-save input{ margin-top:2px; }
.somacal-row{ display:flex; gap:10px; justify-content:flex-end; align-items:center; }
.somacal-del{ margin-right:auto; font-size:12px; color:var(--cal-bad); background:none; border:none; cursor:pointer; padding:4px 0; }
.somacal-btn{
  font:inherit; font-size:13.5px; padding:9px 16px; border-radius:99px; border:1px solid var(--cal-line);
  background:transparent; color:inherit; cursor:pointer;
}
.somacal-btn.pri{ background:var(--cal-teal); border-color:var(--cal-teal); color:#04222a; font-weight:650; }
.somacal-btn:disabled{ opacity:.5; cursor:default; }
.somacal-btn:focus-visible, .somacal-del:focus-visible{ outline:2px solid var(--cal-teal); outline-offset:2px; }

/* Botão "Calibrar Voz Médico" (barra de gravação do Atendimento) em estado CALIBRADO: teal SOMA
   quando já existe voz calibrada na conta. Aditivo, sem tocar styles.css (Nível 1). O currentColor
   do SVG herda o teal — ícone e texto acompanham. */
.recacts .btn.has-voice{
  border-color:var(--teal,#02B8BF);
  color:var(--teald,#02B8BF);
  box-shadow:inset 0 0 0 1px rgba(2,184,191,.4);
}
.recacts .btn.has-voice:hover{ border-color:var(--teal,#02B8BF); }

@keyframes somacal-pulse{ 0%,100%{ transform:scale(1); opacity:1 } 50%{ transform:scale(1.5); opacity:.55 } }
@media (prefers-reduced-motion:reduce){
  .somacal-read .w, .somacal-meter{ transition:none; }
  .somacal-guard.ok .dot{ animation:none; }
}
