/* ILM Core — estilos del panel de puntos y del canje. Toma los colores del theme ILM y
   tiene valores propios si se usa con otro theme. */

.ilmc {
	--ilmc-v: var(--v, #2E0F52);
	--ilmc-v2: var(--v2, #7C3FE4);
	--ilmc-am: var(--am, #FFC531);
	--ilmc-tx: var(--tx, #1B1523);
	--ilmc-tx2: var(--tx2, #625B70);
	--ilmc-bd: var(--bd, #E4E0EB);
	--ilmc-fondo: var(--fondo, #F6F5F9);
	--ilmc-r: var(--r, 10px);
	--ilmc-r-lg: var(--r-lg, 14px);
	display: grid;
	gap: 1.25rem;
	color: var(--ilmc-tx);
}

.ilmc-saldo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	border-radius: var(--ilmc-r-lg);
	background: var(--ilmc-v);
	color: #fff;
}
.ilmc-saldo__rotulo { margin: 0; font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ilmc-am); }
.ilmc-saldo__valor { margin: .125rem 0 0; font-size: 2.25rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.ilmc-saldo__valor span { font-size: 1rem; font-weight: 600; opacity: .8; }
.ilmc-saldo__vence { margin: 0; padding: .5rem .75rem; border-radius: var(--ilmc-r); background: var(--ilmc-am); color: var(--ilmc-tx); font-size: .875rem; font-weight: 700; }

.ilmc-reglas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.ilmc-reglas li { padding: .875rem 1rem; border: 1px solid var(--ilmc-bd); border-radius: var(--ilmc-r); background: #fff; font-size: .875rem; color: var(--ilmc-tx2); line-height: 1.45; }
.ilmc-reglas strong { display: block; margin-bottom: .125rem; color: var(--ilmc-v); font-size: .9375rem; }
@media (max-width: 700px) { .ilmc-reglas { grid-template-columns: 1fr; } }

.ilmc-titulo { margin: .5rem 0 0; font-size: 1.25rem; color: var(--ilmc-v); }
.ilmc-vacio { margin: 0; padding: 1rem; border: 1px dashed var(--ilmc-bd); border-radius: var(--ilmc-r); color: var(--ilmc-tx2); }

.ilmc-premios { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.ilmc-premio { display: flex; flex-direction: column; align-items: center; gap: .375rem; padding: .875rem; border: 1px solid var(--ilmc-bd); border-radius: var(--ilmc-r-lg); background: #fff; text-align: center; }
.ilmc-premio__img { display: block; width: 100%; aspect-ratio: 1; }
.ilmc-premio__img img { width: 100%; height: 100%; object-fit: contain; margin: 0; }
.ilmc-premio__sin-foto { display: block; width: 100%; height: 100%; border-radius: var(--ilmc-r); background: var(--ilmc-fondo); }
.ilmc-premio__nombre { margin: 0; font-size: .9375rem; font-weight: 700; line-height: 1.3; color: var(--ilmc-v); }
.ilmc-premio__costo { margin: 0; padding: .125rem .5rem; border-radius: 6px; background: var(--ilmc-am); font-weight: 800; font-variant-numeric: tabular-nums; }
.ilmc-premio__estado { margin-top: auto; font-size: .8125rem; font-weight: 600; color: var(--ilmc-tx2); }

.ilmc-btn, a.ilmc-btn-canje {
	display: inline-flex; align-items: center; justify-content: center; margin-top: auto;
	width: 100%; min-height: 40px; padding: .5rem .875rem; border-radius: 999px;
	background: var(--ilmc-v2); color: #fff; font-size: .875rem; font-weight: 800; text-decoration: none;
}
.ilmc-btn:hover, a.ilmc-btn-canje:hover { filter: brightness(.92); color: #fff; }
.ilmc-btn--secundario { background: #fff; color: var(--ilmc-v); box-shadow: inset 0 0 0 1px var(--ilmc-bd); }
.ilmc-btn--secundario:hover { color: var(--ilmc-v); }
a.ilmc-btn-canje { width: auto; margin: 0 0 0 .5rem; }

.ilmc-historial { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.ilmc-historial th, .ilmc-historial td { padding: .625rem .5rem; border-bottom: 1px solid var(--ilmc-bd); text-align: left; vertical-align: top; }
.ilmc-historial th { font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ilmc-tx2); }
.ilmc-historial small { display: block; color: var(--ilmc-tx2); font-size: .8125rem; }
.ilmc-num { text-align: right !important; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ilmc-mas { color: #0F7A60; }
.ilmc-menos { color: #B42318; }

.ilmc-pts { font-weight: 800; color: var(--v, #2E0F52); white-space: nowrap; }
.ilmc-premio-ficha { padding: .75rem 1rem; border-radius: 10px; background: #FFF8E1; color: #5C3D00; font-size: .9375rem; }
.ilmc-premio-ficha p { margin: 0; }
