/* ===========================================================================
   LAS ETIQUETAS DEL TICKET — la piel de su lista y de su ficha (2026-10-08,
   docs/tpv/mesas-nombre-y-etiquetas-2026-10-08.md §7)

   Aparte por lo mismo que las otras pieles de una pantalla: solo la usan esas
   dos. Consume las fichas --limpia-* de hoja-limpia.css (claro y oscuro) y no
   declara ninguna propia: el único color propio es el de cada etiqueta, que
   sale de la paleta cerrada y va en el estilo del disco.

   EL DISCO es lo que la caja pinta en la mesa: un círculo del color de la
   etiqueta con el icono en BLANCO (toda la paleta da 4,5:1 o más con blanco).
   Un anillo de 1 px del canto de la hoja lo separa del fondo en oscuro.

   LOS SELECTORES son botones de radio de verdad: el círculo del radio se
   esconde (sigue siendo enfocable) y la opción entera es la diana, de 64 px
   de alto como mínimo. El foco se ve en la opción (:has(:focus-visible)) y lo
   elegido lleva el canto morado y la aguada, que es lo que dice «elegido» en
   toda la central.
   =========================================================================== */

/* 1. EL DISCO Y LA PASTILLA ------------------------------------------------- */

.etq-disco {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    inline-size: 28px;
    block-size: 28px;
    border-radius: 50%;
    color: #ffffff;
    box-shadow: 0 0 0 1px var(--limpia-borde);
    vertical-align: middle;
}

.etq-disco .etq-icono {
    inline-size: 16px;
    block-size: 16px;
}

.etq-disco-grande {
    inline-size: 40px;
    block-size: 40px;
}

.etq-disco-grande .etq-icono {
    inline-size: 22px;
    block-size: 22px;
}

.etq-pastilla {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    max-inline-size: 100%;
    padding: 0.35rem 1rem 0.35rem 0.35rem;
    border: 1px solid var(--limpia-borde);
    border-radius: var(--limpia-radio);
    background-color: var(--limpia-hoja);
}

.etq-pastilla-nombre {
    min-inline-size: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--limpia-tinta);
    font-size: 1rem;
    font-weight: 600;
}

.etq-pastilla-sin-nombre {
    color: var(--limpia-tinta-3);
    font-weight: 400;
}

.etq-vista-previa {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-block-end: 1rem;
    padding: 0.75rem;
    border-radius: var(--limpia-radio-control);
    background-color: var(--limpia-papel);
}

.etq-vista-previa-rotulo {
    color: var(--limpia-tinta-2);
    font-size: 0.8125rem;
}

/* 2. LOS SELECTORES DE ICONO Y DE COLOR ------------------------------------- */

.etq-selector {
    min-inline-size: 0;
    margin: 0 0 1rem;
    padding: 0;
    border: 0;
}

.etq-selector-rotulo {
    margin-block-end: 0.4rem;
    padding: 0;
    color: var(--limpia-tinta-2);
    font-size: 0.8125rem;
    font-weight: 600;
}

.etq-rejilla {
    display: grid;
    gap: 0.5rem;
}

.etq-rejilla-iconos {
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
}

.etq-rejilla-colores {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}

.etq-opcion {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    min-block-size: 64px;
    padding: 0.5rem 0.35rem;
    border: 1px solid var(--limpia-borde);
    border-radius: var(--limpia-radio-control);
    background-color: var(--limpia-hoja);
    color: var(--limpia-tinta);
    cursor: pointer;
    text-align: center;
}

.etq-opcion-color {
    flex-direction: row;
    justify-content: flex-start;
    padding-inline: 0.5rem;
    text-align: start;
}

.etq-opcion:hover {
    background-color: var(--limpia-hover);
}

.etq-opcion-elegida,
.etq-opcion:has(.etq-radio:checked) {
    border-color: var(--limpia-morado);
    background-color: var(--limpia-morado-aguada);
    box-shadow: inset 0 0 0 1px var(--limpia-morado);
}

.etq-opcion:has(.etq-radio:focus-visible) {
    outline: 2px solid var(--limpia-morado);
    outline-offset: 2px;
}

/* El círculo del radio fuera de la vista, pero en el orden del teclado y para el lector de pantalla. */
.etq-radio {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    opacity: 0;
}

.etq-opcion-nombre {
    font-size: 0.8125rem;
    line-height: 1.2;
}

.etq-opcion-elegida .etq-opcion-nombre,
.etq-opcion:has(.etq-radio:checked) .etq-opcion-nombre {
    font-weight: 600;
}

.etq-selector-aviso,
.etq-selector-error {
    margin: 0.4rem 0 0;
    font-size: 0.8125rem;
}

.etq-selector-aviso {
    color: var(--limpia-aviso-tinta);
}

.etq-selector-error {
    color: var(--limpia-error-tinta);
}

@media (prefers-reduced-motion: no-preference) {
    .etq-opcion {
        transition: background-color 120ms ease, border-color 120ms ease;
    }
}

/* 3. LA COLUMNA DEL DISCO, ESTRECHA ----------------------------------------- */

/* La tabla reparte el ancho por el contenido y al disco (28 px) le tocaba tanto como al nombre. Solo en la lista que
   lleva discos: `data-clave="aspecto"` no es de nadie más, pero así no puede serlo. */
.crud-tabla:has(td .etq-disco) th[data-clave="aspecto"] {
    inline-size: 6.5rem;
}
