/* =============================================================================
 * DS · LISTA REPETIBLE  (`sortable_list`)
 *
 * DE DÓNDE VINO: `gw-fields/assets/css/gwfields.css`, bloque "SORTABLE LIST"
 * (las reglas se MOVIERON, no se copiaron — allá ya no están).
 *
 * POR QUÉ SE MOVIÓ: el front nuevo no importa `gwfields.css`, igual que no importa
 * `main.css`. Mientras estas reglas vivieran ahí, el repetidor era imposible de
 * migrar con paridad: el marcado se reproduce y sale sin vestir. El barrido previo
 * (2026-07-28) encontró que gwfields.css define 62 clases y que **41 son huérfanas**
 * — ni en el DS ni en el bundle del front. Éstas son las primeras que cruzan.
 *
 * QUÉ VISTE: el campo `sortable_list` de gw-fields, que no es una lista sino un
 * REPETIDOR — el PHP emite un molde oculto (`.list_item_template`) con marcadores de
 * uid y el JS lo clona al pulsar "+". Es el campo con más usos de los formularios
 * (24), y es con el que están hechas las variaciones de producto.
 *
 * NOTA sobre los fallbacks `var(--neutral-200, var(--gray250))`: se conservan tal
 * cual estaban. `--gray250`/`--gray150` son variables del `main.css` legacy, que el
 * front no carga; no se activan nunca porque los tokens `--neutral-*` existen en el
 * DS (primitives/semantics). Se dejan para no cambiar dos cosas a la vez.
 *
 * Lo que NO se movió del mismo archivo: el bloque "BLOCKS FIELD" (`.sortable_box*`,
 * `.sortable_boxes`, `.add_sortable_box`). Viste al campo `blocks`, que este producto
 * **no usa** — cero apariciones en juicy-core. Mover CSS muerto es mudar deuda.
 * ========================================================================== */

.field_blocks_list{
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin: 0;
	padding: 15px 15px 30px 15px;
	border: 1px solid var(--neutral-200, var(--gray250));
	border-radius: 3px;
	min-height: 90px;
	list-style: none;
	background:#FFF;
}
.field_blocks_list.dradding_list{
	position: absolute;
	padding: 0;
	border: none;
	pointer-events: none;
	z-index: 99999;
}

/* Lista ANIDADA (una lista dentro de un item de otra). No hay datos que la ejerciten
 * en el tenant de pruebas —el barrido la buscó en tres productos y salió 0 veces—, así
 * que esta regla viaja SIN medir. Queda dicho: es la única del bloque que el diff de
 * antes/después no cubre. */
.field_blocks_list > li > .field_blocks_list{
	padding: 0 0 0 30px;
    border: none;
    margin-top: 10px;
	gap: 10px;
}
.list_field_actions {
	transform: translateY(-50%);
}
.list_item .list_item_wrapper{
	width: calc(100% - 50px);
    background: var(--neutral-100, #f8f9fa);
    border-radius: 5px;
    box-shadow: 0 0 3px rgba(0,0,0,0.15);
}
.sortable_list .list_item .list_item_wrapper{
	padding-left: 30px;
}
.list_item .list_item_header{
	padding: 15px;
}
.only_fields_edition .list_item{
	width: 100%;
}
.only_fields_edition .list_item:last-child{
	margin-bottom: -15px;
}
.delete_list_item{
	position: absolute;
    top: calc(50% - 20px);
    right: -50px;
}
.sortable_list_base .delete_list_item{
	display: none;
}
.list_centered_fields .list_item_header > .row{
	align-items: center;
}
.list_item_handle{
	position: absolute;
    top: 0;
    left: -30px;
    width: 30px;
    color: var(--neutral-200, var(--gray250));
    background: var(--neutral-100, var(--gray150));
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    cursor: grab;
}
.list_item_handle:hover{
	color: var(--neutral-300, var(--gray300));
}
