/* DANGOFE OS · Portal del técnico · «Graba tu voz» (portal-voz v1.0.0, chat de Diseño). Vidrio, sin sombras; claro y Noche azul. */
.pv { --pv-bg: rgba(255,255,255,.66); --pv-borde: rgba(255,255,255,.85); --pv-txt: #0b1540; --pv-txt2: #4b5a86; --pv-txt3: #6b7aa6; --pv-azul: #03269b; --pv-azul2: #2563eb;
  --pv-verde: #16a34a; --pv-verde-bg: rgba(22,163,74,.12); --pv-rojo: #b91c1c; --pv-rojo-bg: rgba(185,28,28,.1); --pv-pill: rgba(3,38,155,.08); --pv-linea: rgba(3,38,155,.16);
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif; color: var(--pv-txt); max-width: 620px; margin: 0 auto 12px; }
[data-theme='dark'] .pv { --pv-bg: rgba(12,22,64,.62); --pv-borde: rgba(140,170,255,.26); --pv-txt: #eef2ff; --pv-txt2: #b6c2ea; --pv-txt3: #8a98c9; --pv-azul: #8db0ff; --pv-azul2: #3b82f6;
  --pv-verde: #4ade80; --pv-verde-bg: rgba(74,222,128,.14); --pv-rojo: #fca5a5; --pv-rojo-bg: rgba(248,113,113,.14); --pv-pill: rgba(141,176,255,.14); --pv-linea: rgba(141,176,255,.24); }
.pv *, .pv *::before, .pv *::after { box-sizing: border-box; }
.pv-card, .pv-linea { border: 1px solid var(--pv-borde); background: var(--pv-bg); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); }
.pv-card { border-radius: 22px; padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 10px; animation: pv-entra .45s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes pv-entra { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.pv-paso { display: inline-flex; align-items: center; gap: 8px; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--pv-azul); }
.pv-paso i { width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--pv-azul); color: #fff; font-style: normal; font-size: 12px; }
[data-theme='dark'] .pv-paso i { background: var(--pv-azul2); }
.pv-tit { margin: 0; font-size: 24px; font-weight: 800; line-height: 1.1; letter-spacing: -.01em; }
.pv-txt { margin: 0; font-size: 15px; line-height: 1.45; color: var(--pv-txt2); }
.pv-bts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.pv-bt { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 18px; border-radius: 999px; border: 1px solid var(--pv-linea); background: var(--pv-pill); color: var(--pv-txt); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; flex: 1 1 auto; min-width: 0; -webkit-tap-highlight-color: transparent; }
.pv-bt span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-bt svg { flex: none; }
.pv-bt--pri { background: var(--pv-azul); border-color: transparent; color: #fff; flex: 2 1 auto; }
[data-theme='dark'] .pv-bt--pri { background: var(--pv-azul2); }
.pv-bt--rojo { background: var(--pv-rojo); border-color: transparent; color: #fff; }
[data-theme='dark'] .pv-bt--rojo { background: #dc2626; }
.pv-bt--min { min-height: 36px; padding: 6px 12px; font-size: 13px; flex: 0 0 auto; }
.pv-bt:disabled { opacity: .45; cursor: default; }
.pv-bt:not(:disabled):active { transform: scale(.98); }
.pv-consent { margin: 0; padding: 12px 14px; border-radius: 14px; background: var(--pv-pill); font-size: 14.5px; line-height: 1.5; color: var(--pv-txt); }
.pv-check { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 700; cursor: pointer; min-height: 44px; }
.pv-check input { width: 24px; height: 24px; margin: 0; accent-color: var(--pv-azul); flex: none; }
.pv-frases { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pv-frases li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 14px; border: 1px solid transparent; color: var(--pv-txt3); font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.pv-frases li i { flex: none; width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; font-style: normal; font-size: 12px; font-weight: 800; border: 1.5px solid var(--pv-linea); }
.pv-frases li.is-actual { color: var(--pv-txt); font-size: 18px; font-weight: 700; background: var(--pv-pill); border-color: var(--pv-linea); }
.pv-frases li.is-actual i { background: var(--pv-azul); border-color: var(--pv-azul); color: #fff; }
[data-theme='dark'] .pv-frases li.is-actual i { background: var(--pv-azul2); border-color: var(--pv-azul2); }
.pv-frases li.is-ok { color: var(--pv-verde); }
.pv-frases li.is-ok i { background: var(--pv-verde-bg); border-color: transparent; color: var(--pv-verde); }
/* el medidor: 24 barras que siguen al micrófono (scaleY desde el js) y paran con él */
.pv-medidor { display: flex; align-items: center; justify-content: center; gap: 3px; height: 54px; padding: 0 6px; border-radius: 14px; background: var(--pv-pill); overflow: hidden; }
.pv-medidor i { display: block; width: 6px; height: 44px; border-radius: 3px; background: var(--pv-rojo); transform: scaleY(.08); transform-origin: 50% 50%; transition: transform .08s linear; }
.pv-rec { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--pv-txt2); min-height: 24px; }
.pv-rec b { color: var(--pv-txt); font-variant-numeric: tabular-nums; }
.pv-rec svg { flex: none; color: var(--pv-verde); }
.pv-rec.is-rec b { color: var(--pv-rojo); display: inline-flex; align-items: center; gap: 6px; }
.pv-rec.is-rec b::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--pv-rojo); animation: pv-late 1s ease-in-out 15; }
@keyframes pv-late { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.pv-rec.is-mal { color: var(--pv-rojo); } .pv-rec.is-mal svg { color: var(--pv-rojo); }
.pv-audio { width: 100%; height: 40px; border-radius: 999px; }
.pv-espera { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 700; min-height: 44px; }
.pv-rueda { flex: none; width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--pv-linea); border-top-color: var(--pv-azul); animation: pv-gira .8s linear 60; }
@keyframes pv-gira { to { transform: rotate(360deg); } }
.pv-aviso { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 16px; font-size: 14.5px; line-height: 1.45; color: var(--pv-txt); }
.pv-aviso svg { flex: none; margin-top: 2px; }
.pv-aviso--ok { background: var(--pv-verde-bg); } .pv-aviso--ok svg { color: var(--pv-verde); }
.pv-aviso--mal { background: var(--pv-rojo-bg); } .pv-aviso--mal svg { color: var(--pv-rojo); }
/* la línea corta: registrada (verde) o pendiente (azul) */
.pv-linea { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px 14px; border-radius: 24px; font-size: 14px; color: var(--pv-txt2); }
.pv-linea > svg { flex: none; } .pv-linea > span { flex: 1 1 160px; min-width: 0; } .pv-linea b { color: var(--pv-txt); }
.pv-linea.is-ok > svg { color: var(--pv-verde); } .pv-linea.is-pend > svg { color: var(--pv-azul); }
@media (prefers-reduced-motion: reduce) { .pv-card { animation: none; } .pv-rec.is-rec b::before { animation: none; } .pv-medidor i { transition: none; } }
@media (max-width: 360px) { .pv-card { padding: 14px; border-radius: 18px; } .pv-tit { font-size: 21px; } .pv-frases li.is-actual { font-size: 16px; } .pv-bt { padding: 10px 14px; font-size: 14px; } }
