/* Diálogos modales (recompra, final del torneo, confirmaciones). */
.velo {
  position: fixed; inset: 0; background: rgb(0 0 0 / .6); display: grid; place-items: center;
  z-index: 40; padding: 16px; animation: tostada-entra .15s;
}
.dialogo { width: min(420px, 100%); display: grid; gap: 12px; text-align: center; }
.dialogo .botonera { justify-content: center; }
.dialogo .cuenta { font-size: 28px; font-weight: 800; color: var(--acento); font-variant-numeric: tabular-nums; }
.dialogo .trofeo { font-size: 48px; }
.dialogo .tabla { text-align: left; }

/* Repetición de manos */
.dialogo.ancho { width: min(620px, 100%); max-height: 92vh; overflow: auto; text-align: left; }
.repeticion { display: grid; gap: 10px; }
.repeticion h2 { text-align: center; }
.mesa-mini { display: flex; gap: 5px; justify-content: center; min-height: 60px; --carta-ancho: 42px; }
.bote-mini { text-align: center; font-weight: 700; color: var(--acento); }
.cartas-mini { display: flex; gap: 3px; --carta-ancho: 28px; }
.dealer-mini { background: #fbfaf7; color: #222; border-radius: 50%; padding: 0 5px; font-size: 10px; font-weight: 800; }
.registro.pasos { max-height: 180px; overflow: auto; background: var(--fondo); padding: 8px; border-radius: 8px; }
.registro.pasos li.actual { background: rgb(224 176 74 / .18); color: var(--texto); border-radius: 4px; }
.repeticion .botonera { justify-content: center; align-items: center; }

/* «Tu imagen» (js/perfil.js) */
.dialogo.perfil { text-align: center; }
.perfil-previa { display: grid; place-items: center; }
.avatar.grande { width: 96px; height: 96px; font-size: 34px; }
.avatar.grande .emoji-avatar { font-size: 56px; }
.recorte { display: grid; gap: 10px; justify-items: center; }
.recorte canvas { width: min(256px, 70vw); aspect-ratio: 1; border-radius: 50%; cursor: grab; touch-action: none; background: #000; box-shadow: 0 0 0 3px var(--acento); }
.recorte .zoom { display: flex; gap: 8px; align-items: center; width: min(256px, 70vw); }
.recorte .zoom input { flex: 1; accent-color: var(--acento); }
.galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); gap: 8px; }
.avatar-galeria { aspect-ratio: 1; border-radius: 50%; border: 2px solid transparent; font-size: 24px; cursor: pointer; display: grid; place-items: center; }
.avatar-galeria[aria-pressed="true"] { border-color: var(--acento); box-shadow: 0 0 0 2px var(--acento); }
.avatar-galeria:hover { filter: brightness(1.15); }

/* «Mis sonidos» (js/clips.js) */
.lista-clips { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lista-clips li { display: flex; align-items: center; gap: 8px; }
.lista-clips .nombre-clip { flex: 1; font-weight: 700; overflow-wrap: anywhere; }
.nuevo-clip { display: grid; gap: 8px; border-top: 1px solid var(--borde); padding-top: 8px; }
.previa-clip { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.previa-clip input { flex: 1; min-width: 120px; }
[data-grabar].grabando { background: #7c201d; border-color: #d05a54; animation: parpadeo 1s infinite; }
@keyframes parpadeo { 50% { opacity: .6; } }

.fila-nombre { display: flex; gap: 8px; align-items: end; text-align: left; }
.fila-nombre label { flex: 1; display: grid; gap: 4px; font-size: 12px; color: var(--texto-2); }
.pasos-instalar { text-align: left; display: grid; gap: 8px; margin: 12px 0 4px; padding-left: 22px; line-height: 1.4; }

/* Ajustes (js/ajustes.js): filas grandes, fáciles de tocar en el móvil. */
.dialogo.ajustes { width: min(420px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; text-align: left; display: grid; gap: 12px; }
.dialogo.ajustes h2 { margin: 0; text-align: center; }
.grupo-ajustes { display: grid; gap: 6px; }
.grupo-ajustes h3 { margin: 4px 0 0; font-size: 12px; text-transform: uppercase; letter-spacing: .5px; color: var(--texto-2); }
.fila-ajuste {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border-radius: 10px;
  background: var(--superficie-2); border: 1px solid var(--borde); color: var(--texto); font: inherit; font-weight: 600;
  cursor: pointer; text-align: left;
}
.fila-ajuste:hover { border-color: var(--acento); }
.fila-ajuste.conmutador::after {
  content: ""; margin-left: auto; width: 38px; height: 22px; border-radius: 999px; flex: none;
  background: radial-gradient(circle at 11px 50%, #fff 8px, transparent 9px) #555; transition: background .15s;
}
.fila-ajuste.conmutador[aria-pressed="true"]::after { background: radial-gradient(circle at 27px 50%, #fff 8px, transparent 9px) var(--acento-oscuro, #9a7a2c); }
.fila-ajuste.volumen input { margin-left: auto; width: 45%; accent-color: var(--acento); }
.colores-mesa { display: flex; gap: 10px; justify-content: space-between; }
.muestra-mesa {
  flex: 1; aspect-ratio: 1.6; border-radius: 999px; cursor: pointer; border: 3px solid transparent;
  background: radial-gradient(ellipse at 50% 42%, var(--f1), var(--f3));
}
.muestra-mesa[aria-checked="true"] { border-color: var(--acento); box-shadow: 0 0 0 2px #0008; }
.muestra-mesa[data-color-mesa="verde"] { --f1: #23875e; --f3: #0f4331; }
.muestra-mesa[data-color-mesa="azul"] { --f1: #2b73ad; --f3: #123452; }
.muestra-mesa[data-color-mesa="granate"] { --f1: #a0343e; --f3: #4a141b; }
.muestra-mesa[data-color-mesa="morado"] { --f1: #6d4ba3; --f3: #30204b; }
.muestra-mesa[data-color-mesa="grafito"] { --f1: #4d545c; --f3: #202327; }
