/* ============================================================================
   alloop Dashboard — panel de progreso del alumno
   Paleta y formas heredadas de la maqueta aprobada por la clienta
   (assets/propuesta-campus-inteligente/.../theme.ts). Todo el CSS va prefijado
   con .alloop-dash para no colisionar con Astra/Elementor, y toda la escala
   vive en tokens: cambiar la marca es tocar :root, no perseguir hex sueltos.
   ============================================================================ */

.alloop-dash {
	/* Marca (maqueta aprobada) */
	--ad-teal: #128597;
	--ad-teal-deep: #0E6C7B;
	--ad-teal-soft: #E1F1F3;
	--ad-navy: #12354B;

	/* Tinta */
	--ad-ink: #0E2A3B;
	--ad-ink-soft: #415B6C;
	--ad-ink-faint: #7C93A1;

	/* Superficies */
	--ad-panel: #FFFFFF;
	--ad-bg: #EEF4F8;
	--ad-line: #DBE7EE;

	/* Acentos semánticos */
	--ad-amber: #E7912F;
	--ad-amber-soft: #FBEEDA;
	--ad-green: #159A68;
	--ad-green-soft: #E1F3EB;

	/* Profundidad: desplazamiento + desenfoque, teñidos del azul de marca */
	--ad-shadow: 0 1px 2px rgba(16, 42, 59, .04), 0 8px 24px rgba(16, 42, 59, .06);
	--ad-shadow-lift: 0 2px 4px rgba(16, 42, 59, .05), 0 16px 40px rgba(16, 42, 59, .10);

	/* Ritmo (escala de 4) */
	--ad-s1: 4px;  --ad-s2: 8px;  --ad-s3: 12px; --ad-s4: 16px;
	--ad-s5: 24px; --ad-s6: 32px; --ad-s7: 48px;
	--ad-radius: 16px;
	--ad-radius-sm: 10px;

	max-width: 1060px;
	margin: 0 auto;
	padding: var(--ad-s4) var(--ad-s3) var(--ad-s7);
	color: var(--ad-ink);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

.alloop-dash *,
.alloop-dash *::before,
.alloop-dash *::after { box-sizing: border-box; }

/* ── Cabecera ────────────────────────────────────────────────────────────── */

.alloop-dash-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--ad-s3) var(--ad-s4);
	margin-bottom: var(--ad-s5);
}

.alloop-dash-header-main { min-width: 0; }

.alloop-dash-header h2 {
	margin: 0;
	font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2rem);
	font-weight: 800;
	letter-spacing: -0.022em;
	line-height: 1.15;
	color: var(--ad-ink);
}

.alloop-dash-sub {
	margin: 0;
	width: 100%;
	color: var(--ad-ink-soft);
	font-weight: 600;
	font-size: .95rem;
}

.alloop-dash-streak {
	display: inline-flex;
	align-items: center;
	gap: var(--ad-s1);
	margin-left: auto;
	padding: var(--ad-s1) var(--ad-s3);
	border-radius: 999px;
	background: var(--ad-green-soft);
	color: #0F6B49;
	font-weight: 700;
	font-size: .85rem;
	white-space: nowrap;
}

/* ── Superficie base ─────────────────────────────────────────────────────── */

.alloop-dash-card {
	background: var(--ad-panel);
	border: 1px solid var(--ad-line);
	border-radius: var(--ad-radius);
	padding: var(--ad-s5);
	box-shadow: var(--ad-shadow);
}

.alloop-dash-card h4 {
	margin: 0 0 var(--ad-s3);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ad-ink-faint);
}

/* ── Cursos: la pieza protagonista, con más peso que las tarjetas laterales ─ */

.alloop-dash-courses {
	display: grid;
	gap: var(--ad-s4);
	margin-bottom: var(--ad-s4);
}

.alloop-dash-course {
	display: flex;
	gap: var(--ad-s5);
	align-items: center;
	padding: var(--ad-s5);
}

.alloop-dash-course-info { min-width: 0; }

.alloop-dash-course-info h3 {
	margin: 0 0 var(--ad-s1);
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: -0.012em;
	line-height: 1.25;
	color: var(--ad-ink);
}

.alloop-dash-course-info p { margin: 0 0 2px; color: var(--ad-ink-soft); }

/* Anillo de progreso: el número es el héroe de la tarjeta */
.alloop-dash-ring {
	--pct: 0;
	position: relative;
	flex: 0 0 108px;
	width: 108px;
	height: 108px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: conic-gradient(
		var(--ad-teal) calc(var(--pct) * 1%),
		var(--ad-teal-soft) 0
	);
}

.alloop-dash-ring::before {
	content: "";
	position: absolute;
	inset: 11px;
	background: var(--ad-panel);
	border-radius: 50%;
}

.alloop-dash-ring span {
	position: relative;
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--ad-teal-deep);
	font-variant-numeric: tabular-nums;
}

.alloop-dash-next {
	margin-top: var(--ad-s3) !important;
	padding-top: var(--ad-s3);
	border-top: 1px solid var(--ad-line);
}

.alloop-dash-next span {
	display: block;
	color: var(--ad-ink-faint);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.alloop-dash-next a {
	color: var(--ad-teal-deep);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid var(--ad-teal-soft);
	transition: border-color .15s ease, color .15s ease;
}

.alloop-dash-next a:hover,
.alloop-dash-next a:focus-visible {
	color: var(--ad-teal);
	border-bottom-color: var(--ad-teal);
}

/* Secondary courses: the next-step link stays, but muted so only the primary
   course carries the loud "Recommended for you". */
.alloop-dash-next-quiet span { color: var(--ad-ink-faint); font-weight: 600; }
.alloop-dash-next-quiet a {
	color: var(--ad-ink-soft);
	border-bottom-color: var(--ad-line);
	font-weight: 600;
}
.alloop-dash-next-quiet a:hover,
.alloop-dash-next-quiet a:focus-visible {
	color: var(--ad-teal-deep);
	border-bottom-color: var(--ad-teal-soft);
}

.alloop-dash-done { color: #0F6B49; font-weight: 700; }

/* ── Capa motivacional: objetivos + qué desbloquea el nivel siguiente ────── */

.alloop-dash-motivation {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ad-s4);
	margin-bottom: var(--ad-s4);
}

@media (min-width: 860px) {
	/* Los objetivos mandan; la promesa del nivel acompaña. */
	.alloop-dash-motivation { grid-template-columns: 1.4fr 1fr; }
}

.alloop-dash-goal + .alloop-dash-goal { margin-top: var(--ad-s4); }

.alloop-dash-goal-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--ad-s3);
	margin-bottom: var(--ad-s2);
	font-size: .95rem;
	color: var(--ad-ink);
}

.alloop-dash-goal-head b { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Un color por tipo de objetivo, como en la maqueta aprobada. */
.alloop-dash-bar.is-teal i  { background: var(--ad-teal); }
.alloop-dash-bar.is-green i { background: var(--ad-green); }
.alloop-dash-bar.is-amber i { background: var(--ad-amber); }

.alloop-dash-nextlevel {
	background: linear-gradient(180deg, #FFFDF8 0%, var(--ad-amber-soft) 100%);
	border-color: #F3DFBE;
}

.alloop-dash-nextlevel h4 { color: #9A5B12; }

.alloop-dash-nextlevel p {
	margin: 0;
	color: #6E4310;
	font-size: 1.02rem;
	line-height: 1.5;
	max-width: 46ch;
}

.alloop-dash-nextlevel-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ad-s3);
	margin-top: var(--ad-s4) !important;
}

.alloop-dash-nextlevel .alloop-dash-btn {
	margin-top: 0;
	background: var(--ad-amber);
}

.alloop-dash-nextlevel .alloop-dash-btn:hover,
.alloop-dash-nextlevel .alloop-dash-btn:focus-visible {
	background: #C97614;
}

.alloop-dash-price {
	color: #6E4310;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.alloop-dash-price del { opacity: .6; font-weight: 400; }

/* ── Rejilla secundaria ──────────────────────────────────────────────────── */

.alloop-dash-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ad-s4);
}

@media (min-width: 700px) {
	.alloop-dash-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
	.alloop-dash-grid { grid-template-columns: repeat(3, 1fr); }
}

.alloop-dash-big {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.035em;
	color: var(--ad-ink);
	font-variant-numeric: tabular-nums;
}

.alloop-dash-muted { color: var(--ad-ink-faint); font-size: .875rem; }

.alloop-dash-list {
	margin: var(--ad-s3) 0 0;
	padding: 0;
	list-style: none;
	font-size: .925rem;
}

.alloop-dash-list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--ad-s3);
	padding: var(--ad-s2) 0;
	border-top: 1px solid var(--ad-line);
	color: var(--ad-ink-soft);
}

.alloop-dash-list li:first-child { border-top: 0; padding-top: 0; }

/* Deberes: nombre + estado de corrección + fecha. Tres piezas, así que la fila
   fluye en vez de empujar la fecha al extremo opuesto como en las listas de 2. */
.alloop-dash-list-hw li {
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: var(--ad-s2);
}

.alloop-dash-list-hw li > a {
	color: var(--ad-ink);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid var(--ad-line);
}

.alloop-dash-list-hw li > a:hover,
.alloop-dash-list-hw li > a:focus {
	color: var(--ad-teal-deep);
	border-bottom-color: currentColor;
}

.alloop-dash-list-hw .alloop-dash-muted { margin-left: auto; }

.alloop-dash-badge {
	display: inline-block;
	padding: 2px var(--ad-s2);
	border-radius: 999px;
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
}

.alloop-dash-badge.is-ok   { background: var(--ad-green-soft); color: var(--ad-green); }
.alloop-dash-badge.is-wait { background: var(--ad-amber-soft); color: var(--ad-amber); }

/* ── Derniers tests réalisés ─────────────────────────────────────────────── */

/* This card can hold more than the narrow grid tiles; let it span full width
   so the test rows breathe instead of wrapping every line. */
.alloop-dash-card-wide { grid-column: 1 / -1; }

.alloop-dash-list-tests li {
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: var(--ad-s2);
}

/* Kind pill (Quiz / Exercice): a quiet marker, not a shout. */
.alloop-dash-test-kind {
	flex: 0 0 auto;
	padding: 1px var(--ad-s2);
	border: 1px solid var(--ad-line);
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ad-ink-faint);
}

.alloop-dash-test-title {
	color: var(--ad-ink);
	font-weight: 600;
	text-decoration: none;
}
a.alloop-dash-test-title { border-bottom: 1px solid var(--ad-line); }
a.alloop-dash-test-title:hover,
a.alloop-dash-test-title:focus {
	color: var(--ad-teal-deep);
	border-bottom-color: currentColor;
}

/* Score badge and date pushed to the right edge, date last. */
.alloop-dash-list-tests .alloop-dash-badge { margin-left: auto; }
.alloop-dash-test-date { flex: 0 0 auto; }

/* ── Hilo de feedback profe ↔ alumno ─────────────────────────────────────── */

.alloop-dash-thread { margin-top: var(--ad-s4); }
.alloop-dash-shared .alloop-dash-thread { margin-top: var(--ad-s3); }

.alloop-dash-thread-list {
	display: flex;
	flex-direction: column;
	gap: var(--ad-s2);
	max-height: 320px;
	overflow-y: auto;
	margin: var(--ad-s3) 0;
	padding-right: var(--ad-s2);
}

.alloop-dash-bubble {
	max-width: 80%;
	padding: var(--ad-s2) var(--ad-s3);
	border-radius: 14px;
	background: var(--ad-surface-2, #f2f6f8);
	border: 1px solid var(--ad-line);
}

/* Mine (whoever is looking) sits on the right, teal-tinted. */
.alloop-dash-bubble.is-mine {
	align-self: flex-end;
	background: var(--ad-teal-soft, #e2f1f3);
	border-color: transparent;
}

.alloop-dash-bubble-body { color: var(--ad-ink); font-size: .925rem; line-height: 1.45; }
.alloop-dash-bubble-meta { margin-top: 4px; font-size: .72rem; color: var(--ad-ink-faint); }

.alloop-dash-thread-empty { margin: var(--ad-s3) 0; }

.alloop-dash-thread-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--ad-s2);
	margin-top: var(--ad-s3);
}

.alloop-dash-thread-form textarea {
	flex: 1 1 220px;
	min-height: 2.6em;
	padding: var(--ad-s2) var(--ad-s3);
	border: 1px solid var(--ad-line);
	border-radius: 10px;
	font: inherit;
	color: var(--ad-ink);
	resize: vertical;
}
.alloop-dash-thread-form textarea:focus {
	outline: 2px solid var(--ad-teal);
	outline-offset: 1px;
	border-color: var(--ad-teal);
}

.alloop-dash-thread-status { flex: 1 0 100%; font-size: .8rem; color: var(--ad-amber, #b26a00); }

/* Teacher: homework awaiting correction, approve inline. */
.alloop-dash-approve { margin-top: var(--ad-s3); }
.alloop-dash-list-approve li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ad-s3);
}
.alloop-dash-approve-btn { flex: 0 0 auto; padding: 4px var(--ad-s3); font-size: .8rem; }

/* ── Actividad semanal ───────────────────────────────────────────────────── */

.alloop-dash-week {
	display: flex;
	gap: var(--ad-s2);
	align-items: flex-end;
	height: 76px;
	margin: var(--ad-s2) 0 var(--ad-s3);
}

.alloop-dash-day {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	gap: var(--ad-s2);
	height: 100%;
}

.alloop-dash-day i {
	display: block;
	width: 100%;
	height: 18px;
	border-radius: 7px;
	background: var(--ad-teal-soft);
}

.alloop-dash-day.is-active i {
	height: 52px;
	background: var(--ad-teal);
}

.alloop-dash-day b {
	font-size: .75rem;
	font-weight: 600;
	color: var(--ad-ink-faint);
}

/* ── Barras de progreso (vista compartida) ───────────────────────────────── */

.alloop-dash-bar-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(90px, 1.6fr) 3.5ch;
	gap: var(--ad-s3);
	align-items: center;
	margin: var(--ad-s2) 0;
	font-size: .925rem;
}

/* Móvil: el nombre del curso ocupa su propia línea; nunca se parte en tres. */
@media (max-width: 560px) {
	.alloop-dash-bar-row {
		grid-template-columns: 1fr auto;
		gap: var(--ad-s1) var(--ad-s3);
	}
	.alloop-dash-bar-row > span:first-child { grid-column: 1 / -1; font-weight: 600; }
	.alloop-dash-bar { grid-column: 1; }
	.alloop-dash-bar-row b { grid-column: 2; }
}

.alloop-dash-bar {
	background: var(--ad-teal-soft);
	border-radius: 999px;
	height: 8px;
	overflow: hidden;
}

.alloop-dash-bar i {
	display: block;
	min-width: 8px; /* a 1-2% sigue siendo visible, no una barra fantasma */
	height: 100%;
	background: var(--ad-teal);
	border-radius: 999px;
}

/* Aún sin empezar: la pista se ve, pero sin fingir avance. */
.alloop-dash-bar.is-zero { background: var(--ad-line); }
.alloop-dash-bar.is-zero i { min-width: 0; }

.alloop-dash-bar-row b {
	font-variant-numeric: tabular-nums;
	text-align: right;
	color: var(--ad-ink);
	font-weight: 700;
}

/* ── Estado vacío ────────────────────────────────────────────────────────── */

.alloop-dash-empty {
	text-align: center;
	padding: var(--ad-s6) var(--ad-s4);
	color: var(--ad-ink-soft);
}

.alloop-dash-empty-title {
	margin: 0 0 var(--ad-s2);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -0.012em;
	color: var(--ad-ink);
}

.alloop-dash-empty .alloop-dash-muted {
	max-width: 46ch;
	margin: 0 auto;
}

.alloop-dash-btn {
	display: inline-block;
	margin-top: var(--ad-s3);
	padding: var(--ad-s3) var(--ad-s5);
	border-radius: var(--ad-radius-sm);
	background: var(--ad-teal);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none;
	box-shadow: var(--ad-shadow);
	transition: background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.alloop-dash-btn:hover,
.alloop-dash-btn:focus-visible {
	background: var(--ad-teal-deep);
	box-shadow: var(--ad-shadow-lift);
	transform: translateY(-1px);
}

/* ── Vista compartida (familias / empresas) ──────────────────────────────── */

.alloop-dash-shared .alloop-dash-header { display: block; }

/* El enlace de profesor es una mesa de trabajo, no una página pública. */
body.alloop-dash-teacher-view #masthead,
body.alloop-dash-teacher-view #site-header,
body.alloop-dash-teacher-view .site-header,
body.alloop-dash-teacher-view .elementor-location-header {
	display: none !important;
}

.alloop-dash-students-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ad-s4);
	margin: 0 0 var(--ad-s4);
}

.alloop-dash-students-count {
	margin: 0;
	font-weight: 700;
	color: var(--ad-ink-soft);
}

.alloop-dash-student-search {
	width: min(100%, 280px);
	padding: 11px 14px;
	border: 1px solid var(--ad-line);
	border-radius: var(--ad-radius-sm);
	background: #fff;
	color: var(--ad-ink);
	font: inherit;
}

.alloop-dash-student-search:focus {
	border-color: var(--ad-teal);
	outline: 2px solid color-mix(in srgb, var(--ad-teal) 22%, transparent);
	outline-offset: 1px;
}

.alloop-dash-students-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
	gap: var(--ad-s4);
}

.alloop-dash-student-summary {
	display: block;
	margin: 0;
	color: inherit;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.alloop-dash-student-summary:hover,
.alloop-dash-student-summary:focus-visible {
	border-color: var(--ad-teal);
	box-shadow: var(--ad-shadow-lift);
	transform: translateY(-2px);
}

.alloop-dash-student-summary-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--ad-s3);
}

.alloop-dash-student-summary h3 {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.alloop-dash-student-summary-head > span {
	color: var(--ad-teal);
	font-size: 1.2rem;
	font-weight: 700;
}

.alloop-dash-student-course {
	margin: var(--ad-s3) 0 var(--ad-s2);
	color: var(--ad-ink-soft);
	font-size: .875rem;
	line-height: 1.35;
}

.alloop-dash-student-progress {
	margin: var(--ad-s2) 0 0;
	font-size: .82rem;
	font-weight: 700;
	color: var(--ad-teal-deep);
}

.alloop-dash-student-summary .alloop-dash-stats {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: var(--ad-s3);
	padding-top: var(--ad-s3);
}

.alloop-dash-back { margin: 0 0 var(--ad-s4); }
.alloop-dash-back a { color: var(--ad-teal-deep); font-weight: 700; text-decoration: none; }

.alloop-dash-detail-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ad-s3);
	margin-bottom: var(--ad-s4);
}

.alloop-dash-detail-title h3 { margin: 0; font-size: clamp(1.45rem, 3vw, 2rem); }
.alloop-dash-shared-section { margin: 0 0 var(--ad-s5); }
.alloop-dash-shared-section > h4 { margin: 0 0 var(--ad-s3); }

.alloop-dash-shared-course {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ad-s4);
	margin-bottom: var(--ad-s3);
}

.alloop-dash-shared-course h5 { margin: 0; font-size: 1rem; }
.alloop-dash-shared-course p { margin: var(--ad-s1) 0 0; }
.alloop-dash-shared-detail-grid { margin-bottom: var(--ad-s4); }

.alloop-dash-search-empty { margin: 0 0 var(--ad-s4); }

.alloop-dash-student h3 {
	margin: 0 0 var(--ad-s3);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

/* Métricas del alumno: pares etiqueta/valor, no una frase corrida. */
.alloop-dash-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: var(--ad-s3) var(--ad-s4);
	margin: var(--ad-s4) 0 0;
	padding: var(--ad-s4) 0 0;
	border-top: 1px solid var(--ad-line);
}

.alloop-dash-stats dt {
	margin: 0;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ad-ink-faint);
}

.alloop-dash-stats dd {
	margin: 2px 0 0;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--ad-ink);
	font-variant-numeric: tabular-nums;
}

.alloop-dash-notes { margin-top: var(--ad-s4); }

.alloop-dash-notes h5 {
	margin: 0 0 var(--ad-s2);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ad-ink-faint);
}

.alloop-dash-notes blockquote {
	margin: var(--ad-s2) 0 0;
	padding: 0 0 0 var(--ad-s4);
	border-left: 1px solid var(--ad-line);
	color: var(--ad-ink-soft);
	font-size: .925rem;
	line-height: 1.5;
}

.alloop-dash-notes footer {
	margin-top: var(--ad-s1);
	color: var(--ad-ink-faint);
	font-size: .8rem;
	font-style: normal;
}

@media (max-width: 600px) {
	.alloop-dash-students-toolbar { align-items: stretch; flex-direction: column; }
	.alloop-dash-student-search { width: 100%; }
	.alloop-dash-students-grid { grid-template-columns: 1fr; }
}

/* ── Accesibilidad y preferencias del sistema ────────────────────────────── */

.alloop-dash a:focus-visible,
.alloop-dash button:focus-visible {
	outline: 2px solid var(--ad-teal);
	outline-offset: 2px;
	border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.alloop-dash * { transition: none !important; }
}

/* Móvil: el anillo se coloca sobre el texto para no comprimir el título. */
@media (max-width: 480px) {
	.alloop-dash-course {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--ad-s4);
	}
	.alloop-dash-big { font-size: 2rem; }
}

/* Fecha de caducidad del acceso en la tarjeta del curso (alloop-dashboard 0.9.0). */
.alloop-dash-access { margin: 6px 0 0; font-size: 13px; }
.alloop-dash-access-soon { color: #b45309; font-weight: 600; }
