/* Tema aulaformacion27 · estilos nuevos del maquillaje
 *
 * Se carga desde header.html con temaAsset('css/tema.css') (lleva ?v=versión),
 * DESPUÉS de las hojas de Moodle y de aardvark_*.css, así que lo que se ponga aquí manda.
 * Los colores, la letra, las esquinas y las sombras se cambian en las variables de :root.
 */

/* =====================================================================
   PASO 2 · BASE COMÚN
   ===================================================================== */

:root {
  /* Letra: Inter, alojada en la carpeta del tema (aardvark_fonts.css la declara) */
  --af-letra: 'Inter', Arial, Helvetica, sans-serif;

  /* Colores corporativos */
  --af-rojo: #FF040F;          /* rojo de la marca (barras, iconos) */
  --af-rojo-oscuro: #d80000;   /* títulos de sección */

  /* Textos */
  --af-texto: #374151;         /* texto normal (antes #555555, algo más oscuro para leer mejor) */
  --af-texto-suave: #6b7280;   /* textos secundarios, etiquetas */

  /* Enlaces (mismo azul que ya usaba el campus) */
  --af-enlace: #0662a3;
  --af-enlace-hover: #044a7c;   /* enlace al pasar el ratón (antes rojo puro) */
  --af-enlace-bloque: #1f3b64; /* enlaces de los bloques laterales */

  /* Fondos y bordes */
  --af-fondo: #ffffff;
  --af-fondo-suave: #f7f8fb;
  --af-borde: #e6e8ee;
  --af-borde-suave: #eef0f4;

  /* Esquinas y sombras */
  --af-radio: 12px;
  --af-radio-peq: 8px;
  --af-sombra: 0 2px 10px rgba(0, 0, 0, .06);
}

/* --- Una sola letra en todo el campus (antes Open Sans, cargada de Google) --- */
body,
body#course-view,
td, th, li,
input, select, textarea, button,
h1, h2, h3, h4,
.breadcrumb, .breadcrumb a,
th.header, td.header, div.header, .headingblock,
table.minicalendar tr.weekdays th,
.header-profilename a, .header-profileoptions a,
p.arrow_button input {
  font-family: var(--af-letra);
}

/* La portada del curso: progreso.css fija otra letra con !important en #course-view */
body#course-view {
  font-family: var(--af-letra) !important;
}

/* Etiquetas de sección: aardvark_color.css fija Open Sans con !important */
#course-view .section td.content ul.section li.label,
#course-view .section td.content p.topic,
#course-view .section td.content p.weekly,
#course-view .section td.content span.label {
  font-family: var(--af-letra) !important;
}

/* --- Color del texto --- */
body {
  color: var(--af-texto);
}

/* --- Foco visible al moverse con el teclado (accesibilidad) --- */
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible {
  outline: 2px solid var(--af-enlace);
  outline-offset: 2px;
}

/* =====================================================================
   PASO 3 · CABECERA Y BARRA DE NAVEGACIÓN
   Solo estilos: el HTML de header.html y profileblock.php no cambia.
   ===================================================================== */

/* --- Cabecera: logo a la izquierda, menú y avatar a la derecha, en una línea --- */
#header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: auto;
  min-height: 0;
  padding: 10px 4px 12px 4px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--af-borde-suave);
}
#header::after { display: none; }   /* el clearfix ya no hace falta con flex */

/* Logo más compacto (el enlace lleva 247×96 escrito en header.html) */
#header-home {
  position: static;
  float: none;
  width: auto;
  height: auto;
  padding: 0;
}
#header-home a {
  width: 185px !important;
  height: 72px !important;
}
#header-home #logo {
  height: 100%;
  background-size: contain;
  background-position: left center;
}

/* Bloque del usuario: la tabla se convierte en una fila (menú + avatar) */
#header-profileblock {
  position: static;
  float: none;
  text-align: right;
}
#header-profileblock table,
#header-profileblock tbody {
  display: flex;
  align-items: center;
  border: 0;
  border-collapse: collapse;
}
#header-profileblock tr { display: contents; }
#header-profileblock td {
  display: block;
  width: auto;
  height: auto;
  padding: 0;
}
#header-profileblock tr:first-child td:first-child { display: none; }  /* nombre (vacío) */
#header-profileblock tr:first-child td:last-child { order: 2; }        /* avatar a la derecha */
#header-profileblock tr:last-child td { order: 1; }                    /* menú a la izquierda */

/* Menú: Mis cursos · Mi perfil · Salir como botones de texto */
.header-profileoptions { margin: 0; }
.header-profileoptions ul {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.header-profileoptions ul li {
  display: block;
  padding: 0;
}
#header-profileoptions ul li a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 999px;
  color: var(--af-texto);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  text-decoration: none;
  transition: background-color .2s, color .2s;
}
#header-profileoptions ul li a:hover {
  background-color: var(--af-fondo-suave);
  color: var(--af-rojo);
}
/* Iconos del menú (dibujados con SVG; toman el color del texto) */
#header-profileoptions ul li a::before {
  content: "";
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask: var(--af-icono) no-repeat center / contain;
          mask: var(--af-icono) no-repeat center / contain;
}
#header-profileoptions ul li:nth-child(1) a { --af-icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4h7a3 3 0 0 1 3 3v13a2 2 0 0 0-2-2H2z'/%3E%3Cpath d='M22 4h-7a3 3 0 0 0-3 3v13a2 2 0 0 1 2-2h8z'/%3E%3C/svg%3E"); }
#header-profileoptions ul li:nth-child(2) a { --af-icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
#header-profileoptions ul li:nth-child(3) a { --af-icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E"); }

/* Avatar pequeño y redondo */
.header-profilepic {
  width: auto;
  height: auto;
  margin: 0 0 0 8px;
}
.header-profilepic .profile-avatar {
  width: 42px;
  height: 42px;
  font-size: 17px;
  background-color: var(--af-texto-suave);
  box-shadow: 0 0 0 2px var(--af-fondo), 0 0 0 3px var(--af-borde);
}

/* --- Barra de navegación: migas a la izquierda, botones del administrador a la derecha --- */
.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0 4px !important;
  margin-bottom: 18px;
  color: var(--af-texto-suave);
}
.navbar::after { display: none; }
.navbar .breadcrumb,
.navbar .navbutton {
  float: none;
  margin: 0;
}
.breadcrumb ul {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--af-texto);
}
.breadcrumb a,
.breadcrumb .current {
  margin: 0;
  padding: 5px 12px;
  border-radius: 999px;
  background-color: var(--af-fondo-suave);
  border: 1px solid var(--af-borde);
  color: var(--af-enlace);
  font-size: 13px;
  line-height: 1.3;
}
.breadcrumb a:hover {
  background-color: var(--af-borde-suave);
  color: var(--af-enlace-hover);
}
/* Separador ► más discreto */
.breadcrumb .sep {
  font-size: 9px;
  color: #b0b4bb;
}

/* Botones del administrador (Cambiar rol, Activar edición) */
.navbar .navbutton,
.navbar .navbutton form,
.navbar .navbutton form > div {
  display: flex;
  align-items: center;
  gap: 8px;
  float: none;
  margin: 0;
}
.navbar .navbutton select,
.navbar .navbutton input[type="submit"] {
  height: 34px;
  padding: 0 12px;
  border: 1px solid var(--af-borde);
  border-radius: var(--af-radio-peq);
  background-color: var(--af-fondo);
  color: var(--af-texto);
  font-size: 14px;
  box-shadow: none;
  cursor: pointer;
}
.navbar .navbutton input[type="submit"]:hover,
.navbar .navbutton select:hover {
  background-color: var(--af-fondo-suave);
  border-color: #d5d9e0;
}
.navbar .navbutton .helplink img { opacity: .6; }

/* --- Pantallas estrechas (móvil) --- */
@media (max-width: 767px) {
  #header { flex-wrap: wrap; padding: 6px 2px 8px 2px; }
  #header-home a { width: 140px !important; height: 54px !important; }
  #header-profileoptions ul li a { padding: 6px 8px; font-size: 13px; }
  .header-profilepic .profile-avatar { width: 36px; height: 36px; font-size: 15px; }
}
@media (max-width: 480px) {
  /* En móviles pequeños el menú se queda solo con los iconos (el texto sigue para lectores de pantalla) */
  #header-profileoptions ul li a { font-size: 0; padding: 9px; gap: 0; }
  #header-profileoptions ul li a::before { width: 18px; height: 18px; }
}

/* =====================================================================
   PASO 4 · TÍTULO DEL CURSO (.TituloCabecera, en la primera sección de cada curso)
   Se mantiene la barra roja; tarjeta más ligera y tamaño que se adapta a la pantalla.
   ===================================================================== */
.TituloCabecera {
  background: var(--af-fondo-suave);
  border: 1px solid var(--af-borde-suave);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
  color: #1f2937;
  font-size: clamp(19px, 1.9vw, 25px) !important;   /* !important: los cursos llevan font-size:2em escrito en su HTML */
  line-height: 1.2;
  padding: 16px 22px 16px 34px;
  margin-bottom: 16px;
  border-radius: 14px;
}
.TituloCabecera::before {
  left: 12px;
  top: 12px;
  bottom: 12px;
  width: 7px;
  background: var(--af-rojo);
}
@media (max-width: 767px) {
  .TituloCabecera {
    margin-left: 0;
    padding: 12px 14px 12px 28px;
  }
  .TituloCabecera::before { left: 10px; width: 6px; }
}

/* =====================================================================
   PASO 5 · ACTIVIDADES CON ICONOS MODERNOS
   Los GIF de Moodle (16 px) se sustituyen desde aquí, sin tocar los archivos
   de imagen: icono de línea en gris (#64748b), igual en todo el campus.
   Un tipo que no esté en la lista conserva su GIF (en gris).
   ===================================================================== */
#course-view .section li.activity > a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
/* En modo edición, los iconos de editar a la altura del nombre */
#course-view .section li.activity > a,
#course-view .section li.activity .commands {
  vertical-align: middle;
}
#course-view .section li.activity img.activityicon {
  width: 19px;
  height: 19px;
  object-fit: contain;
  transition: transform .25s ease;
  margin: 0 !important;
  vertical-align: middle;
  flex-shrink: 0;
}
/* Iconos sustituidos: sin el filtro gris de aardvark (ya son grises) */
#course-view .section li.activity img.activityicon[src*="/pix/mod/"],
#course-view .section li.activity img.activityicon[src*="/pix/f/"] {
  filter: none;
}

/* --- Icono de cada tipo (generado; para añadir un tipo, copiar un bloque) --- */
#course-view .section li.activity img.activityicon[src*="/pix/mod/quiz/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/hotpot/"],
#course-view .section li.activity img.activityicon[src*="/pix/f/jqz"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%278%27%20y%3D%272%27%20width%3D%278%27%20height%3D%274%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%27%2F%3E%3Cpath%20d%3D%27m9%2014%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/mod/forum/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2011.5a8.4%208.4%200%200%201-9%208.4%208.5%208.5%200%200%201-3.9-.9L3%2021l1.9-5.1A8.4%208.4%200%200%201%2012%203a8.5%208.5%200%200%201%209%208.5z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/mod/resource/"],
#course-view .section li.activity img.activityicon[src*="/pix/f/text"],
#course-view .section li.activity img.activityicon[src*="/pix/f/unknown"],
#course-view .section li.activity img.activityicon[src*="/pix/f/odf"],
#course-view .section li.activity img.activityicon[src*="/pix/f/xml"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/pdf"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/word"],
#course-view .section li.activity img.activityicon[src*="/pix/f/odt"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/excel"],
#course-view .section li.activity img.activityicon[src*="/pix/f/ods"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/powerpoint"],
#course-view .section li.activity img.activityicon[src*="/pix/f/odp"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/web"],
#course-view .section li.activity img.activityicon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M2%2012h20%27%2F%3E%3Cpath%20d%3D%27M12%202a15%2015%200%200%201%200%2020%2015%2015%200%200%201%200-20z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/mod/assignment/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/workshop/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/journal/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27%2F%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/mod/glossary/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/book/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/wiki/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20V2H6.5A2.5%202.5%200%200%200%204%204.5z%27%2F%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%200%206.5%2022H20v-5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/mod/chat/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/mod/choice/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/survey/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/feedback/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/questionnaire/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27%2F%3E%3Cpath%20d%3D%27M8%2017v-6M13%2017V7M18%2017v-4%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/video"],
#course-view .section li.activity img.activityicon[src*="/pix/f/avi"],
#course-view .section li.activity img.activityicon[src*="/pix/f/flash"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/flashvideo/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/inwicast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D%277%204%2020%2012%207%2020%207%204%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/image"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/gallery/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%2718%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%279%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27m21%2015-5-5L5%2021%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/audio"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/podcast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%2018V5l12-2v13%27%2F%3E%3Ccircle%20cx%3D%276%27%20cy%3D%2718%27%20r%3D%273%27%2F%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2716%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/folder"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207a2%202%200%200%201%202-2h4l2%202h8a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/zip"],
#course-view .section li.activity img.activityicon[src*="/pix/f/dmg"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%275%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M5%208v11a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8%27%2F%3E%3Cpath%20d%3D%27M10%2012h4%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/mod/scorm/"],
#course-view .section li.activity img.activityicon[src*="/pix/mod/lesson/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%204h7a3%203%200%200%201%203%203v13a2%202%200%200%200-2-2H2z%27%2F%3E%3Cpath%20d%3D%27M22%204h-7a3%203%200%200%200-3%203v13a2%202%200%200%201%202-2h8z%27%2F%3E%3C%2Fsvg%3E");
}


/* =====================================================================
   PASO 6 · BLOQUES LATERALES (Actividades, Personas, Administración…)
   Las tarjetas ya existían (aardvark_color.css); aquí: esquinas y sombra comunes
   e iconos modernos en lugar de los GIF grises de Moodle.
   Todos los iconos: de línea en gris, como en el curso.
   ===================================================================== */
#left-column .sideblock,
#right-column .sideblock {
  border-radius: var(--af-radio);
  border-color: var(--af-borde) !important;
  box-shadow: var(--af-sombra);
}
#left-column .sideblock .header h2,
#right-column .sideblock .header h2 {
  color: #1f2937;
  letter-spacing: .4px;
}
#right-column .sideblock .content .list li:hover a {
  color: var(--af-enlace-hover);
}
.sideblock .content img.icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
  filter: none;
  vertical-align: middle;
}

/* --- Bloque Actividades: mismo icono que en el curso (generado) --- */
.sideblock .content img.icon[src*="/pix/mod/quiz/"],
.sideblock .content img.icon[src*="/pix/mod/hotpot/"],
.sideblock .content img.icon[src*="/pix/f/jqz"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%278%27%20y%3D%272%27%20width%3D%278%27%20height%3D%274%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%27%2F%3E%3Cpath%20d%3D%27m9%2014%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/mod/forum/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2011.5a8.4%208.4%200%200%201-9%208.4%208.5%208.5%200%200%201-3.9-.9L3%2021l1.9-5.1A8.4%208.4%200%200%201%2012%203a8.5%208.5%200%200%201%209%208.5z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/mod/resource/"],
.sideblock .content img.icon[src*="/pix/f/text"],
.sideblock .content img.icon[src*="/pix/f/unknown"],
.sideblock .content img.icon[src*="/pix/f/odf"],
.sideblock .content img.icon[src*="/pix/f/xml"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/pdf"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/word"],
.sideblock .content img.icon[src*="/pix/f/odt"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/excel"],
.sideblock .content img.icon[src*="/pix/f/ods"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/powerpoint"],
.sideblock .content img.icon[src*="/pix/f/odp"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/web"],
.sideblock .content img.icon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M2%2012h20%27%2F%3E%3Cpath%20d%3D%27M12%202a15%2015%200%200%201%200%2020%2015%2015%200%200%201%200-20z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/mod/assignment/"],
.sideblock .content img.icon[src*="/pix/mod/workshop/"],
.sideblock .content img.icon[src*="/pix/mod/journal/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27%2F%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/mod/glossary/"],
.sideblock .content img.icon[src*="/pix/mod/book/"],
.sideblock .content img.icon[src*="/pix/mod/wiki/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20V2H6.5A2.5%202.5%200%200%200%204%204.5z%27%2F%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%200%206.5%2022H20v-5%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/mod/chat/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/mod/choice/"],
.sideblock .content img.icon[src*="/pix/mod/survey/"],
.sideblock .content img.icon[src*="/pix/mod/feedback/"],
.sideblock .content img.icon[src*="/pix/mod/questionnaire/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27%2F%3E%3Cpath%20d%3D%27M8%2017v-6M13%2017V7M18%2017v-4%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/video"],
.sideblock .content img.icon[src*="/pix/f/avi"],
.sideblock .content img.icon[src*="/pix/f/flash"],
.sideblock .content img.icon[src*="/pix/mod/flashvideo/"],
.sideblock .content img.icon[src*="/pix/mod/inwicast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D%277%204%2020%2012%207%2020%207%204%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/image"],
.sideblock .content img.icon[src*="/pix/mod/gallery/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%2718%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%279%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27m21%2015-5-5L5%2021%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/audio"],
.sideblock .content img.icon[src*="/pix/mod/podcast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%2018V5l12-2v13%27%2F%3E%3Ccircle%20cx%3D%276%27%20cy%3D%2718%27%20r%3D%273%27%2F%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2716%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/folder"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207a2%202%200%200%201%202-2h4l2%202h8a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/zip"],
.sideblock .content img.icon[src*="/pix/f/dmg"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%275%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M5%208v11a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8%27%2F%3E%3Cpath%20d%3D%27M10%2012h4%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/mod/scorm/"],
.sideblock .content img.icon[src*="/pix/mod/lesson/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%204h7a3%203%200%200%201%203%203v13a2%202%200%200%200-2-2H2z%27%2F%3E%3Cpath%20d%3D%27M22%204h-7a3%203%200%200%200-3%203v13a2%202%200%200%201%202-2h8z%27%2F%3E%3C%2Fsvg%3E");
}

/* --- Personas, Administración y otros: iconos de línea en gris (generado) --- */
.sideblock .content img.icon[src*="/pix/i/users.gif"],
.sideblock .content img.icon[src*="/pix/i/group.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%277%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27M22%2021v-2a4%204%200%200%200-3-3.9M16%203.1a4%204%200%200%201%200%207.8%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/user.gif"],
.sideblock .content img[src*="/pix/i/user.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%278%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27M4%2021a8%208%200%200%201%2016%200%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/edit.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27%2F%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/settings.gif"],
.sideblock .content img.icon[src*="/pix/i/admin.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%273%27%2F%3E%3Cpath%20d%3D%27M12%202v3M12%2019v3M4.9%204.9l2.1%202.1M17%2017l2.1%202.1M2%2012h3M19%2012h3M4.9%2019.1%207%2017M17%207l2.1-2.1%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/roles.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%277%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27m16%2011%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/grades.gif"],
.sideblock .content img.icon[src*="/pix/i/scales.gif"],
.sideblock .content img.icon[src*="/pix/i/outcomes.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020V10M18%2020V4M6%2020v-4%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/backup.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%27%2F%3E%3Cpath%20d%3D%27m7%2010%205%205%205-5%27%2F%3E%3Cpath%20d%3D%27M12%2015V3%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/restore.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%27%2F%3E%3Cpath%20d%3D%27m17%208-5-5-5%205%27%2F%3E%3Cpath%20d%3D%27M12%203v12%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/return.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2012a9%209%200%201%200%203-6.7L3%208%27%2F%3E%3Cpath%20d%3D%27M3%203v5h5%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/stats.gif"],
.sideblock .content img.icon[src*="/pix/i/report.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27%2F%3E%3Cpath%20d%3D%27m19%209-5%205-4-4-3%203%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/questions.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M9.1%209a3%203%200%200%201%205.8%201c0%202-3%203-3%203%27%2F%3E%3Cpath%20d%3D%27M12%2017h.01%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/files.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207a2%202%200%200%201%202-2h4l2%202h8a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/course.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%204h7a3%203%200%200%201%203%203v13a2%202%200%200%200-2-2H2z%27%2F%3E%3Cpath%20d%3D%27M22%204h-7a3%203%200%200%200-3%203v13a2%202%200%200%201%202-2h8z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/calendar.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%274%27%20width%3D%2718%27%20height%3D%2718%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M16%202v4M8%202v4M3%2010h18%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/news.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/info.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M12%2016v-4M12%208h.01%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/i/search.gif"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2711%27%20cy%3D%2711%27%20r%3D%278%27%2F%3E%3Cpath%20d%3D%27m21%2021-4.3-4.3%27%2F%3E%3C%2Fsvg%3E");
}

/* =====================================================================
   PASO 7 · BOTONES, CAMPOS Y TABLAS
   No se tocan las clases de los contenidos de los cursos (.boton, .tunidad…).
   ===================================================================== */

/* --- Botones: contorno suave; los principales, rellenos en gris oscuro --- */
input[type="submit"],
input[type="button"],
input[type="reset"],
button {
  padding: 7px 14px;
  border: 1px solid #d1d5db;
  border-radius: var(--af-radio-peq);
  background-color: var(--af-fondo);
  color: var(--af-texto);
  font-family: var(--af-letra);
  font-size: 14px;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color .2s, border-color .2s, color .2s;
}
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
button:hover {
  background-color: var(--af-fondo-suave);
  border-color: #c3c8d0;
}
/* Principales: Guardar cambios, Comenzar intento, Enviar… */
#id_submitbutton,
#id_submitbutton2,
.quizstartbuttondiv input[type="submit"],
.submitbtns input[name="finishattempt"] {
  background-color: var(--af-texto);
  border-color: var(--af-texto);
  color: #ffffff;
}
#id_submitbutton:hover,
#id_submitbutton2:hover,
.quizstartbuttondiv input[type="submit"]:hover,
.submitbtns input[name="finishattempt"]:hover {
  background-color: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
}
/* Los botones de la barra del administrador mantienen su estilo del paso 3 */
.navbar .navbutton input[type="submit"] {
  background-color: var(--af-fondo);
  border-color: var(--af-borde);
  color: var(--af-texto);
}

/* --- Campos de texto y listas --- */
textarea,
select,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="number"] {
  padding: 6px 10px;
  border: 1px solid #d1d5db;
  border-radius: var(--af-radio-peq);
  background-color: var(--af-fondo);
  color: var(--af-texto);
  font-family: var(--af-letra);
  font-size: 14px;
}
textarea:focus,
select:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="number"]:focus {
  border-color: var(--af-enlace);
  box-shadow: 0 0 0 3px rgba(6, 98, 163, .15);   /* antes un resplandor azul de 8px */
  outline: 0;
}

/* --- Tablas generales (foros, participantes, cuestionarios, informes…) --- */
table.generaltable,
table.forumheaderlist {
  border-collapse: collapse;
}
table.generaltable th,
table.generaltable th.header,
table.forumheaderlist th,
table.forumheaderlist th.header {
  padding: 9px 12px;
  background-color: var(--af-fondo-suave);
  border-bottom: 1px solid var(--af-borde);
  color: var(--af-texto);
  font-size: 13px;
  font-weight: 600;
  text-align: left;
}
table.generaltable th a,
table.forumheaderlist th a {
  color: var(--af-texto);
}
table.generaltable td,
table.forumheaderlist td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--af-borde-suave);
}
/* Filas alternas muy suaves y fila resaltada al pasar el ratón */
table.generaltable tr.r1 td,
table.forumheaderlist tr.r1 td {
  background-color: #fbfbfd;
}
table.generaltable tbody tr:hover td,
table.forumheaderlist tbody tr:hover td {
  background-color: #f3f5f9;
}

/* =====================================================================
   PASO 8 · PÁGINA DE ENTRADA AL CAMPUS (body#login-index)
   Tarjeta centrada, etiquetas encima de los campos y botón «Entrar» destacado.
   ===================================================================== */

/* Cabecera sin sesión: botón «Entrar» (profileblock.php) con icono propio y borde */
#header-profileoptions ul.entrar li a.boton-entrar {
  --af-icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4'/%3E%3Cpath d='m10 17 5-5-5-5'/%3E%3Cpath d='M15 12H3'/%3E%3C/svg%3E");
  border: 1px solid #d1d5db;
  font-weight: 600;
}
/* En la propia página de entrada el botón sobra (el formulario está en el centro).
   .loginform: por si queda en caché la cabecera antigua con el mini formulario */
body#login-index #header-profileoptions .entrar,
body#login-index #header-profileoptions .loginform { display: none; }

body#login-index .loginbox {
  width: auto;
  max-width: 400px;
  margin: 40px auto 30px auto;
  padding: 30px 30px 22px 30px;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(17, 24, 39, .08);
}
body#login-index .loginbox .loginpanel,
body#login-index .loginbox .subcontent {
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
}
body#login-index .loginpanel h3 {
  margin: 0 0 20px 0;
  padding: 0;
  background: transparent;
  color: #1f2937;
  font-size: 21px;
  font-weight: 700;
  text-align: center;
}

/* Etiquetas encima de los campos, campos a todo lo ancho */
body#login-index .loginform .form-label,
body#login-index .loginform .form-input {
  float: none;
  width: auto;
  text-align: left;
}
body#login-index .loginform .form-label label {
  display: block;
  margin: 0 0 6px 0;
  color: var(--af-texto);
  font-size: 14px;
  font-weight: 600;
}
body#login-index .loginform .form-input { margin-bottom: 14px; }
body#login-index .loginform .clearer { display: none; }
body#login-index #username,
body#login-index #password {
  display: block;
  width: 100%;
  height: 44px;
  margin: 0;
  box-sizing: border-box;
  font-size: 15px;
}

/* Botón «Entrar»: a todo lo ancho, relleno en gris oscuro */
body#login-index .loginform input[type="submit"] {
  display: block;
  width: 100%;
  height: 46px;
  margin: 18px 0 0 0;
  background-color: var(--af-texto);
  border-color: var(--af-texto);
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
}
body#login-index .loginform input[type="submit"]:hover {
  background-color: #1f2937;
  border-color: #1f2937;
}

/* ¿Olvidó su contraseña? e «Ir al listado de cursos»: más discretos, separados por una línea */
body#login-index .forgotsub {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--af-borde-suave);
  color: var(--af-texto-suave);
  font-size: 13px;
  text-align: center;
}
body#login-index .forgotsub input[type="submit"],
body#login-index .guestsub input[type="submit"] {
  margin-top: 8px;
  font-size: 13px;
}
body#login-index .guestsub {
  margin-top: 10px;
  text-align: center;
}

@media (max-width: 480px) {
  body#login-index .loginbox {
    margin: 20px 4px;
    padding: 22px 18px 18px 18px;
  }
}

/* =====================================================================
   PASO 9 · MÓVIL (pantallas estrechas)
   ===================================================================== */
@media (max-width: 767px) {
  /* Menos margen a los lados de la página */
  .surround {
    border-left-width: 4px;
    border-right-width: 4px;
  }

  /* Botones del administrador: que bajen de línea en vez de salirse */
  .navbar .navbutton,
  .navbar .navbutton form > div {
    flex-wrap: wrap;
    max-width: 100%;
  }
  .navbar .navbutton select { max-width: 100%; }

  /* Secciones del curso: fuera las columnas laterales (número y botón de «solo esta sección»)
     para que el contenido use todo el ancho */
  #course-view .section.main td.side { display: none; }
  #course-view .section.main td.content { padding: 10px 10px !important; }
  #course-view .section td.content {
    overflow-wrap: anywhere;
  }
  #layout-table #middle-column {
    padding-left: 0;
    padding-right: 0 !important;
  }

  /* Botón flotante «Panel» (drawer.js): abajo a la derecha, para no tapar la cabecera */
  #drawer-toggle {
    top: auto;
    bottom: 16px;
    right: 12px;
  }

  /* Actividades: algo menos de sangría */
  #course-view .section td.content ul.section li:has(a) {
    padding: 5px 8px !important;
  }
}

/* =====================================================================
   CABECERA A TODO EL ANCHO Y FIJA AL SUBIR (js/cabecera.js)
   - La línea inferior de la cabecera cruza toda la pantalla; logo y menú siguen
     alineados con la columna central (1150 px).
   - Al subir, la cabecera reaparece fija, compacta y de borde a borde (solo ≥ 768 px).
   ===================================================================== */

/* Línea inferior de borde a borde (border-image con «outset»: no añade anchura a la página) */
#header {
  border-bottom: 1px solid var(--af-borde-suave);
  border-image: linear-gradient(var(--af-borde-suave), var(--af-borde-suave)) 0 0 1 0 / 0 0 1px 0 / 0 100vmax 0 100vmax;
}

@media (min-width: 768px) {
  /* Cabecera fija: barra blanca de borde a borde, contenido alineado con la columna central */
  body.cab-fija #header {
    position: fixed;
    top: var(--cab-top, 0px);
    left: 0;
    right: 0;
    z-index: 9000;              /* por debajo de la barra de progreso (10000) y del botón Panel (9999) */
    margin: 0;
    min-height: 0;
    padding-top: 6px;
    padding-bottom: 6px;
    padding-left: max(14px, calc((100% - 1150px) / 2 + 14px));
    padding-right: max(14px, calc((100% - 1150px) / 2 + 14px));
    background: var(--af-fondo);
    border-image: none;
    border-bottom: 1px solid var(--af-borde-suave);
    box-shadow: 0 4px 16px rgba(17, 24, 39, .08);
    transform: translateY(calc(-100% - var(--cab-top, 0px) - 10px));   /* oculta, encima de la pantalla */
    transition: transform .25s ease;
  }
  body.cab-fija.cab-visible #header {
    transform: translateY(0);
  }

  /* Versión compacta: logo y avatar más pequeños */
  body.cab-fija #header-home a {
    width: 120px !important;
    height: 46px !important;
  }
  body.cab-fija .header-profilepic .profile-avatar {
    width: 34px;
    height: 34px;
    font-size: 14px;
  }
  body.cab-fija #header-profileoptions ul li a {
    padding-top: 5px;
    padding-bottom: 5px;
  }

  /* Mientras se ve la cabecera fija, lo que también va pegado arriba baja lo justo */
  body.cab-visible .section .content > .summary {
    top: calc(var(--cab-top, 0px) + var(--cab-alto, 58px) + 5px);
  }
  body.cab-visible #layout-table #right-column {
    top: calc(var(--cab-top, 0px) + var(--cab-alto, 58px) + 12px);
  }
  .section .content > .summary {
    transition: top .25s ease;
  }
  /* (se repiten las transiciones del panel plegable de aardvark_color.css para no perderlas) */
  #layout-table #right-column {
    transition: width .25s ease, padding .25s ease, border .25s ease, top .25s ease;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.cab-fija #header,
  .section .content > .summary,
  #layout-table #right-column {
    transition: none;
  }
}

/* =====================================================================
   BARRA DE NAVEGACIÓN: BOTÓN DEL PANEL, MIGAS E ICONO DE AYUDA
   ===================================================================== */

/* Las migas a la izquierda; botones del administrador y del panel, a la derecha */
.navbar .breadcrumb { margin-right: auto; }

/* Botón «Ocultar panel / Mostrar panel» (drawer.js lo coloca en .navbar con la clase en-navbar).
   Si una página no tiene barra de navegación, sigue flotante como antes. */
#drawer-toggle.en-navbar {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 34px;
  padding: 0 12px;
  box-sizing: border-box;
  border: 1px solid var(--af-borde);
  border-radius: var(--af-radio-peq);
  background-color: var(--af-fondo);
  box-shadow: none;
  color: var(--af-texto);
  font-size: 13px;
  opacity: 1;
  cursor: pointer;
  user-select: none;
  transition: background-color .2s, border-color .2s;
}
#drawer-toggle.en-navbar:hover {
  background-color: var(--af-fondo-suave);
  border-color: #d5d9e0;
}
/* Icono de panel lateral (línea gris) que cambia según el estado:
   flecha hacia la derecha = ocultar el panel; hacia la izquierda = mostrarlo.
   Pantallas grandes: el panel se ve salvo con body.drawer-collapsed.
   Pantallas ≤ 1100 px: el panel está oculto salvo con body.drawer-open (drawer.js). */
#drawer-toggle.en-navbar {
  --icono-ocultar: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%273%27 width=%2718%27 height=%2718%27 rx=%272%27/%3E%3Cpath d=%27M15 3v18%27/%3E%3Cpath d=%27m8 9 3 3-3 3%27/%3E%3C/svg%3E");
  --icono-mostrar: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%273%27 width=%2718%27 height=%2718%27 rx=%272%27/%3E%3Cpath d=%27M15 3v18%27/%3E%3Cpath d=%27m10 15-3-3 3-3%27/%3E%3C/svg%3E");
  --icono-panel: var(--icono-ocultar);
}
body.drawer-collapsed #drawer-toggle.en-navbar { --icono-panel: var(--icono-mostrar); }
@media (max-width: 1100px) {
  #drawer-toggle.en-navbar { --icono-panel: var(--icono-mostrar); }
  body.drawer-open #drawer-toggle.en-navbar { --icono-panel: var(--icono-ocultar); }
}
#drawer-toggle.en-navbar::before {
  content: "";
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-color: #64748b;
  -webkit-mask: var(--icono-panel) no-repeat center / contain;
          mask: var(--icono-panel) no-repeat center / contain;
}
@media (max-width: 767px) {
  #drawer-toggle.en-navbar { top: auto; bottom: auto; right: auto; }
}

/* Migas: la página actual (texto, sin enlace) en gris oscuro y algo más marcada */
.breadcrumb li:last-child {
  color: #1f2937;
  font-weight: 600;
}
.breadcrumb li:last-child .sep { font-weight: 400; }

/* Icono de ayuda junto a «Cambiar rol» (administrador): de línea gris, como el resto */
.navbar .navbutton .helplink img {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
  width: 18px;
  height: 18px;
  opacity: 1;
  filter: none;
  vertical-align: middle;
}

/* =====================================================================
   SECCIONES DEL CURSO: TÍTULO, NÚMERO, «VER SOLO ESTA SECCIÓN» Y ETIQUETAS
   Ojo con la capa de alumnos (progreso.js + progreso.css, body.control-progreso-on):
   - mete botones flotantes dentro de .summary, encima de .tbloque, y deja .summary pegado arriba;
   - oculta el enlace «ver solo esta sección» y pone su propio botón.
   Por eso aquí NO se cambian los rellenos ni el alto de .tbloque (los botones se apoyan en ellos).
   ===================================================================== */

/* Título de sección (.tbloque, clase de los contenidos): letra Inter, más ligero, barra más fina */
.tbloque {
  background: var(--af-fondo-suave);
  border: 1px solid var(--af-borde-suave);
  border-radius: var(--af-radio);
  color: #1f2937;
  font-family: var(--af-letra) !important;   /* aardvark_fonts.css lo fija en Arial con !important */
  font-weight: 700 !important;
  letter-spacing: .5px;
}
.tbloque:before {
  width: 5px;
  left: 14px;
  background: #b6bcc6;
}

/* Número de sección: insignia redonda gris, a la altura del título de la sección.
   (El número es texto suelto de la celda: el círculo se dibuja con un degradado de fondo.) */
#course-view .section.main td.left {
  vertical-align: top;
  text-align: center;
  padding: 40px 6px 0 6px !important;
  font-size: 13px;
  font-weight: 700;
  line-height: 28px;
  color: #475569;
  background: radial-gradient(circle at 50% 54px, var(--af-borde-suave) 14px, transparent 14.5px) no-repeat !important;
}
/* Con la capa de alumnos, .summary lleva 10px de relleno y 5px de margen: el título baja 15px */
body#course-view.control-progreso-on .section.main td.left {
  padding-top: 55px !important;
  background-position: 0 15px !important;
}

/* «Ver solo esta sección» (lupa con +) / «Ver todas» (lista): iconos de línea gris.
   No se usa un ojo: en Moodle el ojo significa «ocultar/mostrar a los alumnos» (modo edición).
   Para alumnos, progreso.js sustituye este enlace por su propio botón. */
#course-view .section.main td.right img.topicone,
#course-view .section.main td.right img.topicall {
  width: 18px;
  height: 18px;
  opacity: .9;
  filter: none;
}
#course-view .section.main td.right img.topicone {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 3a8 8 0 1 0 0 16 8 8 0 1 0 0-16zM21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E");
}
#course-view .section.main td.right img.topicall {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01'/%3E%3C/svg%3E");
}
#course-view .section.main td.right a:hover img { opacity: 1; }

/* Etiquetas intermedias (.etiq las pone en minúscula): primera letra en mayúscula */
.etiq::first-letter {
  text-transform: uppercase;
}

/* «Perfil» en el bloque de administración: su imagen no lleva la clase .icon */
.sideblock .content img[src*="/pix/i/user.gif"] {
  width: 18px;
  height: 18px;
  object-fit: contain;
  filter: none;
  vertical-align: middle;
}

/* =====================================================================
   PIE DE PÁGINA (footer.html): banda de borde a borde, logo pequeño y ©
   (más adelante: enlaces de contacto, soporte, privacidad…)
   ===================================================================== */
#footer.pie-tema {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 28px 0 0 0;
  padding: 18px 4px;
  background: var(--af-fondo-suave);
  /* fondo y línea superior de borde a borde, sin añadir anchura a la página */
  box-shadow: 0 0 0 100vmax var(--af-fondo-suave);
  clip-path: inset(0 -100vmax);
  border-top: 1px solid var(--af-borde-suave);
  border-image: linear-gradient(var(--af-borde-suave), var(--af-borde-suave)) 1 0 0 0 / 1px 0 0 0 / 0 100vmax 0 100vmax;
}
#footer.pie-tema .pie-logo img {
  display: block;
  width: 130px;
  height: auto;
}
#footer.pie-tema .pie-texto {
  color: var(--af-texto-suave);
  font-size: 13px;
}
@media (max-width: 767px) {
  #footer.pie-tema {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }
}

/* =====================================================================
   PÁGINAS CORTAS, TÍTULOS Y RECUADROS DE AVISO
   NO se tocan las tarjetas de «Mis cursos» (my/index.php: .modern-course, .pin-toggle,
   .test-card-curso, .test-badge-nuevo…), que tienen su propio diseño en aardvark_default.css.
   ===================================================================== */

/* Pie siempre abajo del todo cuando la página es corta */
#page {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 20px);
}
#page > #content { margin-bottom: 28px; }
#page > #footer.pie-tema { margin-top: auto; }

/* Títulos de página (antes gris claro): gris oscuro y en negrita */
#content h2.main,
#content h2.headingblock,
#content h2.course-list-title {
  color: #1f2937;
  font-weight: 700;
}

/* Recuadros de aviso e introducción (.generalbox, antes rosados): gris muy claro y esquinas redondeadas.
   Si un recuadro contiene el listado de cursos, se deja como está. */
.generalbox:not(:has(.modern-course, .modern-courses, .test-card-curso, .test-container-cursos)) {
  background-color: var(--af-fondo-suave);
  border: 1px solid var(--af-borde-suave);
  border-radius: var(--af-radio);
}

/* =====================================================================
   FOROS
   - Cada mensaje (table.forumpost: fila de cabecera con avatar + asunto/autor,
     fila de contenido con el texto y las acciones) se dibuja como una tarjeta.
   - Respuestas anidadas (div.indent): sangría pequeña con línea vertical fina.
   - Acciones: enlaces discretos y «Responder» como botón pequeño.
   - Página del foro: suscripción en una línea y «Nuevo tema» como botón principal.
   ===================================================================== */

/* --- Mensaje como tarjeta --- */
table.forumpost {
  display: block;
  width: 100% !important;
  box-sizing: border-box;
  margin: 0 0 12px 0;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde) !important;
  border-radius: var(--af-radio);
  box-shadow: var(--af-sombra);
  position: relative;           /* para el codo de las respuestas (::before) */
}
table.forumpost tbody,
table.forumpost tr { display: block; }
table.forumpost td {
  display: block;
  border: 0 !important;
  background: transparent !important;
}
/* Cabecera: avatar redondo + asunto y autor */
table.forumpost tr.header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px 12px 16px;
  border-bottom: 1px solid var(--af-borde-suave);
}
table.forumpost tr.header td.picture {
  width: auto;
  padding: 0;
  flex-shrink: 0;
}
table.forumpost tr.header td.picture img.userpicture {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 1px var(--af-borde);
}
table.forumpost tr.header td.topic { padding: 0; }
table.forumpost .subject {
  color: #1f2937;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}
table.forumpost .author {
  margin-top: 2px;
  color: var(--af-texto-suave);
  font-size: 13px;
}
/* Contenido: sin la columna gris de la izquierda, alineado con el asunto */
table.forumpost td.left.side { display: none; }
table.forumpost td.content {
  padding: 12px 16px 12px 68px;
  color: var(--af-texto);
}
/* Mensajes sin leer: línea azul a la izquierda */
table.forumpost.unread {
  border-left: 3px solid var(--af-enlace) !important;
}

/* --- Acciones: «Editar · Partir · Borrar» discretos; «Responder» botón pequeño --- */
table.forumpost .commands {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 6px 14px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--af-borde-suave);
  font-size: 0;                  /* oculta las barras « | » que separan los enlaces */
}
table.forumpost .commands a {
  font-size: 13px;
  color: var(--af-texto-suave);
  text-decoration: none;
}
table.forumpost .commands a:hover { color: var(--af-enlace); }
/* Sin acciones (sin permiso para editar ni responder): sin la franja vacía */
table.forumpost .commands:not(:has(a)) {
  display: none;
}
table.forumpost .commands a[href*="reply="] {
  padding: 5px 12px;
  border: 1px solid #d1d5db;
  border-radius: var(--af-radio-peq);
  color: var(--af-texto);
  font-weight: 600;
}
table.forumpost .commands a[href*="reply="]:hover {
  background: var(--af-fondo-suave);
  color: var(--af-texto);
}

/* --- Respuestas anidadas: línea vertical azul y un «codo» hasta el avatar de cada respuesta --- */
body.mod-forum {
  --af-hilo: #9cc3e8;           /* color de las líneas de conexión */
}
body.mod-forum div.indent {
  margin-left: 34px;            /* la línea cae bajo el avatar del mensaje al que responde */
  padding-left: 22px;
  border-left: 2px solid var(--af-hilo);
}
body.mod-forum div.indent > table.forumpost::before {
  content: "";
  position: absolute;
  left: -24px;                  /* desde la línea vertical (22px de relleno + 2px de línea) */
  top: 34px;                    /* a la altura del centro del avatar */
  width: 23px;
  border-top: 2px solid var(--af-hilo);
}

/* --- Página del foro --- */
#content .subscription {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 4px 16px;
  margin: 0 0 14px 0;
  color: var(--af-texto-suave);
  font-size: 13px;
}
#content .subscription br { display: none; }
#content .subscription img.iconhelp {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
  width: 16px;
  height: 16px;
  vertical-align: middle;
}
/* «Iniciar un nuevo tema»: botón principal */
.forumaddnew input[type="submit"] {
  background-color: var(--af-texto);
  border-color: var(--af-texto);
  color: #ffffff;
  font-weight: 600;
}
.forumaddnew input[type="submit"]:hover {
  background-color: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
}

@media (max-width: 767px) {
  table.forumpost td.content { padding-left: 16px; }
  body.mod-forum div.indent { margin-left: 14px; padding-left: 12px; }
  body.mod-forum div.indent > table.forumpost::before { left: -14px; width: 13px; }
}

/* =====================================================================
   CUESTIONARIOS
   - Portada (body#mod-quiz-view): título, información en etiquetas y botón principal.
   - Preguntas (div.que, en el intento, la vista previa y la revisión): tarjetas;
     número en insignia y puntos a la derecha; opciones como filas que se pueden pulsar.
   - El resaltado de la opción elegida solo se aplica mientras se hace el cuestionario
     (body#mod-quiz-attempt), para no tapar los colores de acierto/error de la revisión.
   ===================================================================== */

/* --- Portada --- */
body#mod-quiz-view #content h2.main { text-align: center; }
body#mod-quiz-view .quizinfo {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 6px 0 18px 0;
}
body#mod-quiz-view .quizinfo p {
  margin: 0;
  padding: 6px 14px;
  background: var(--af-fondo-suave);
  border: 1px solid var(--af-borde-suave);
  border-radius: 999px;
  color: var(--af-texto);
  font-size: 13px;
}
/* Calificación del alumno y avisos de la portada */
body#mod-quiz-view #content h3 {
  text-align: center;
  color: #1f2937;
  font-size: 17px;
  font-weight: 700;
}
/* Comenzar intento / Volver a intentar / Previsualizar: botón principal y más grande */
.quizattempt input[type="submit"] {
  padding: 11px 22px;
  background-color: var(--af-texto);
  border-color: var(--af-texto);
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
}
.quizattempt input[type="submit"]:hover {
  background-color: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
}

/* --- Pregunta como tarjeta --- */
#content div.que {
  float: none;
  box-sizing: border-box;
  margin: 0 0 16px 0;
  padding: 18px 20px;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde) !important;
  border-radius: var(--af-radio);
  box-shadow: var(--af-sombra);
}
/* Cabecera: número (insignia), lápiz de editar (profesor) y puntos a la derecha */
#content div.que .info {
  float: none;
  width: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px 0;
  padding: 0;
  border: 0;
  background: none;
}
#content div.que .info .no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  box-sizing: border-box;
  border-radius: 999px;
  background: var(--af-borde-suave);
  color: #475569;
  font-size: 13px;
  font-weight: 700;
}
#content div.que .info .grade {
  margin-left: auto;
  color: var(--af-texto-suave);
  font-size: 12px;
}
#content div.que .content {
  float: none;
  width: auto;
  margin: 0 !important;
  padding: 0;
}
/* Enunciado */
#content div.que .qtext {
  margin: 0 0 14px 0;
  color: #1f2937;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
}
/* «Seleccione una respuesta.» / «Respuesta:» encima de las opciones */
#content div.que .ablock { margin: 0; }
#content div.que .ablock .prompt {
  float: none;
  width: auto;
  margin: 0 0 8px 0;
  color: var(--af-texto-suave);
  font-size: 13px;
}
#content div.que .ablock .answer {
  float: none;
  width: auto;
  margin: 0;
}

/* --- Opciones como filas (verdadero/falso: span.r0/r1; opción múltiple: table.answer tr) --- */
#content div.que.truefalse .answer > span,
#content div.que .ablock table.answer tr {
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  margin: 0 0 8px 0;
  padding: 10px 12px;
  border: 1px solid var(--af-borde);
  border-radius: var(--af-radio-peq);
  transition: background-color .15s, border-color .15s;
}
#content div.que .ablock table.answer {
  display: block;
  width: 100%;
  border: 0;
}
#content div.que .ablock table.answer tbody { display: block; }
#content div.que .ablock table.answer td {
  display: block;
  padding: 0;
  border: 0;
}
#content div.que .ablock table.answer td.control { width: auto; flex-shrink: 0; display: flex; align-items: center; }   /* tenía 54px fijos */
#content div.que .ablock table.answer td.text { flex: 1; }
#content div.que .answer input[type="radio"],
#content div.que .answer input[type="checkbox"] {
  margin: 0;
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  accent-color: var(--af-enlace);
  cursor: pointer;
}
#content div.que .answer label {
  flex: 1;
  cursor: pointer;
}

/* Mientras se hace el cuestionario: fila bajo el ratón y opción elegida */
body#mod-quiz-attempt div.que.truefalse .answer > span:hover,
body#mod-quiz-attempt div.que .ablock table.answer tr:hover {
  background-color: var(--af-fondo-suave);
}
body#mod-quiz-attempt div.que.truefalse .answer > span:has(input:checked),
body#mod-quiz-attempt div.que .ablock table.answer tr:has(input:checked) {
  background-color: #eef5fc;
  border-color: #9cc3e8;
}

/* --- Barra inferior fija del cuestionario (js/cuestionario.js) ---
   La zona de botones de Moodle (.submitbtns) queda pegada abajo mientras se responde;
   js/cuestionario.js añade dentro «Contestadas X de N · Faltan Y», la barra de avance
   e «Ir a la siguiente sin contestar». Los botones son los de Moodle (el envío no cambia). */
body#mod-quiz-attempt .submitbtns {
  position: sticky;
  bottom: 10px;
  z-index: 50;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px 8px;
  margin: 20px 0 10px 0;
  padding: 12px 16px;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde);
  border-radius: var(--af-radio);
  box-shadow: 0 6px 24px rgba(17, 24, 39, .14);
  text-align: left;
}
body#mod-quiz-attempt .submitbtns input[type="submit"] {
  margin: 0;
  padding: 10px 18px;
  font-size: 14px;
}
.cuest-estado {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-right: auto;            /* el estado a la izquierda, los botones a la derecha */
  color: var(--af-texto);
  font-size: 14px;
}
.cuest-faltan { color: #b45309; font-weight: 600; }
.cuest-completo .cuest-texto strong { color: #15803d; }
.cuest-avance {
  width: 140px;
  height: 6px;
  border-radius: 999px;
  background: var(--af-borde-suave);
  overflow: hidden;
}
.cuest-avance span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: 999px;
  background: var(--af-enlace);
  transition: width .3s ease;
}
.cuest-completo .cuest-avance span { background: #16a34a; }
.cuest-ir {
  color: var(--af-enlace);
  font-size: 13px;
  text-decoration: none;
}
.cuest-ir:hover { text-decoration: underline; }
/* Pregunta a la que se salta con «Ir a la siguiente sin contestar»: destello breve */
#content div.que.cuest-aviso {
  border-color: #f59e0b !important;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, .25);
  transition: box-shadow .3s, border-color .3s;
}

@media (max-width: 767px) {
  #content div.que { padding: 14px; }
  #content div.que .qtext { font-size: 15px; }
}
@media (max-width: 767px) {
  body#mod-quiz-attempt .submitbtns { justify-content: center; bottom: 4px; padding: 10px; }
  .cuest-estado { width: 100%; justify-content: center; margin-right: 0; }
  .cuest-avance { width: 100px; }
}

/* =====================================================================
   SECCIONES COMO CAJAS (esquinas redondeadas de verdad)
   Moodle 1.9 dibuja cada sección como una fila de tabla (table.topics / table.weeks)
   y el navegador no redondea filas de tabla. Aquí la tabla y sus filas pasan a ser
   cajas normales: cada sección es una fila flexible con sus tres columnas
   (número · contenido · icono), así funcionan el borde redondeado y la sombra.
   ===================================================================== */
#course-view table.topics,
#course-view table.weeks,
#course-view table.topics > tbody,
#course-view table.weeks > tbody {
  display: block;
  width: 100%;
}
#course-view table.topics > tbody > tr.section.main,
#course-view table.weeks > tbody > tr.section.main {
  display: flex;
  align-items: stretch;
  width: 100%;
  box-sizing: border-box;
}
#course-view tr.section.main > td.left.side {
  flex: 0 0 auto;
  width: 44px;
  box-sizing: border-box;
}
#course-view tr.section.main > td.content {
  flex: 1 1 auto;
  min-width: 0;
}
#course-view tr.section.main > td.right.side {
  flex: 0 0 auto;
  min-width: 44px;
  box-sizing: border-box;
  text-align: center;
}
/* Las filas separadoras ya no hacen falta: la separación la da el margen de cada sección */
#course-view tr.section.separator { display: none; }

/* La sección 0 no tiene número: sin la insignia redonda */
#section-0.section.main td.left {
  background: none !important;
}

/* «Comunicar finalización» (bloque Formación): el icono va escrito en el HTML del bloque de cada curso,
   guardado en la base de datos (…/pix/flag_green.png). Se sustituye aquí por la dirección de la imagen,
   sea cual sea su carpeta: bandera de línea gris como el resto de iconos. */
.sideblock img[src*="flag_green"] {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z'/%3E%3Cpath d='M4 22v-7'/%3E%3C/svg%3E");
  width: 18px;
  height: 18px;
  object-fit: contain;
  filter: none;
  vertical-align: middle;
}

/* =====================================================================
   ICONOS DE ACTIVIDAD AL PASAR EL RATÓN (para todos)
   El icono y el enlace se ponen en rojo oscuro de la marca (#d80000) y el icono crece un poco.
   Para los alumnos, progreso.css además lo hace girar (con !important): se respeta.
   ===================================================================== */
#course-view .section li.activity:hover img.activityicon {
  transform: scale(1.15);
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/quiz/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/hotpot/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/jqz"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%278%27%20y%3D%272%27%20width%3D%278%27%20height%3D%274%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%27%2F%3E%3Cpath%20d%3D%27m9%2014%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/forum/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2011.5a8.4%208.4%200%200%201-9%208.4%208.5%208.5%200%200%201-3.9-.9L3%2021l1.9-5.1A8.4%208.4%200%200%201%2012%203a8.5%208.5%200%200%201%209%208.5z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/resource/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/text"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/unknown"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/odf"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/xml"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/pdf"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/word"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/odt"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/excel"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/ods"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/powerpoint"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/odp"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/web"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M2%2012h20%27%2F%3E%3Cpath%20d%3D%27M12%202a15%2015%200%200%201%200%2020%2015%2015%200%200%201%200-20z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/assignment/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/workshop/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/journal/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27%2F%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/glossary/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/book/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/wiki/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20V2H6.5A2.5%202.5%200%200%200%204%204.5z%27%2F%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%200%206.5%2022H20v-5%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/chat/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/choice/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/survey/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/feedback/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/questionnaire/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27%2F%3E%3Cpath%20d%3D%27M8%2017v-6M13%2017V7M18%2017v-4%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/video"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/avi"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/flash"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/flashvideo/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/inwicast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D%277%204%2020%2012%207%2020%207%204%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/image"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/gallery/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%2718%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%279%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27m21%2015-5-5L5%2021%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/audio"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/podcast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%2018V5l12-2v13%27%2F%3E%3Ccircle%20cx%3D%276%27%20cy%3D%2718%27%20r%3D%273%27%2F%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2716%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/folder"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207a2%202%200%200%201%202-2h4l2%202h8a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/zip"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/dmg"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%275%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M5%208v11a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8%27%2F%3E%3Cpath%20d%3D%27M10%2012h4%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/scorm/"],
#course-view .section li.activity:hover img.activityicon[src*="/pix/mod/lesson/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%204h7a3%203%200%200%201%203%203v13a2%202%200%200%200-2-2H2z%27%2F%3E%3Cpath%20d%3D%27M22%204h-7a3%203%200%200%200-3%203v13a2%202%200%200%201%202-2h8z%27%2F%3E%3C%2Fsvg%3E");
}

/* Enlaces al pasar el ratón: azul oscuro en lugar del rojo puro de aardvark_default.css (a:hover).
   El menú de la cabecera mantiene el rojo de la marca. */
a:hover {
  color: var(--af-enlace-hover);
}

/* =====================================================================
   MODAL PROPIO (js/cuestionario.js): confirmar el inicio de un intento
   Sustituye a la ventana nativa del navegador (confirm) que pone Moodle.
   ===================================================================== */
html.af-modal-abierto { overflow: hidden; }
.af-modal-fondo {
  position: fixed;
  inset: 0;
  z-index: 100001;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(17, 24, 39, .45);
}
.af-modal-fondo.abierto { display: flex; }
.af-modal {
  width: 100%;
  max-width: 440px;
  box-sizing: border-box;
  padding: 24px 24px 20px 24px;
  background: var(--af-fondo);
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(17, 24, 39, .25);
  font-family: var(--af-letra);
  animation: af-modal-entra .18s ease-out;
}
@keyframes af-modal-entra {
  from { opacity: 0; transform: translateY(8px) scale(.98); }
  to   { opacity: 1; transform: none; }
}
.af-modal-titulo {
  margin: 0 0 10px 0;
  padding: 0;
  border: 0;
  color: #1f2937;
  font-size: 18px;
  font-weight: 700;
  text-align: left;
}
.af-modal-texto {
  margin: 0 0 10px 0;
  color: var(--af-texto);
  font-size: 14px;
  line-height: 1.55;
}
.af-modal-pregunta {
  margin: 0 0 18px 0;
  color: #1f2937;
  font-size: 14px;
  font-weight: 600;
}
.af-modal-botones {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.af-modal-botones button { padding: 9px 16px; font-size: 14px; }
.af-modal-aceptar {
  background-color: var(--af-texto);
  border-color: var(--af-texto);
  color: #ffffff;
  font-weight: 600;
}
.af-modal-aceptar:hover {
  background-color: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
}
@media (prefers-reduced-motion: reduce) {
  .af-modal { animation: none; }
}

/* =====================================================================
   TABLAS GENERALES (foros, participantes, intentos de cuestionario…)
   Sin líneas verticales y con borde exterior redondeado.
   ===================================================================== */
table.generaltable {
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--af-borde) !important;
  border-radius: var(--af-radio);
  overflow: hidden;
}
table.generaltable th,
table.generaltable td {
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 0 !important;
}
table.generaltable tr:last-child td { border-bottom: 0 !important; }

/* --- Lista de foros del curso (mod/forum/index.php) --- */
body#mod-forum-index table.generaltable {
  width: 100%;
  margin: 0 0 24px 0;
}
body#mod-forum-index table.generaltable td,
body#mod-forum-index table.generaltable th { vertical-align: top; }
body#mod-forum-index table.generaltable td.c2,
body#mod-forum-index table.generaltable td.c3,
body#mod-forum-index table.generaltable th.c2,
body#mod-forum-index table.generaltable th.c3 { text-align: center; }
/* La descripción trae el recuadro discontinuo de la introducción del foro: en la tabla sobra */
body#mod-forum-index table.generaltable td.c1 div[style] {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
}


/* =====================================================================
   CALIFICACIONES DEL ALUMNO (grade/report/user, table.user-grade)
   Tabla a todo el ancho, sin el color salmón de las categorías ni las líneas negras,
   nota de cada ítem en negrita, total destacado e iconos de línea gris.
   ===================================================================== */
body#grade-report-user-index table.user-grade {
  width: 100%;
  margin: 10px 0 24px 0;
}
table.user-grade th,
table.user-grade td {
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--af-borde-suave) !important;
  padding: 9px 12px;
  vertical-align: middle;
}
/* Categoría (fila y columna de sangría): gris muy claro en lugar de salmón */
table.user-grade td:not(.item) {
  background-color: var(--af-fondo-suave) !important;
  color: #1f2937;
  font-weight: 600;
}
/* Nota de cada ítem (2.ª columna) en negrita */
table.user-grade td.item:nth-child(2) {
  color: #1f2937;
  font-weight: 700;
}
/* Total del curso: sin cursiva, oscuro y destacado */
table.user-grade td.baggt {
  font-style: normal !important;
  color: #1f2937;
  font-weight: 700;
  font-size: 15px;
  border-top: 2px solid var(--af-borde) !important;
}
table.user-grade td.baggt * { font-style: normal !important; }
/* Iconos */
table.user-grade img.itemicon {
  width: 16px;
  height: 16px;
  object-fit: contain;
  filter: none;
  vertical-align: middle;
  margin-right: 4px;
}
table.user-grade img.itemicon[src*="/pix/i/agg_"] {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 7V4H6l6 8-6 8h12v-3'/%3E%3C/svg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/quiz/"],
table.user-grade img.itemicon[src*="/pix/mod/hotpot/"],
table.user-grade img.itemicon[src*="/pix/f/jqz"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%278%27%20y%3D%272%27%20width%3D%278%27%20height%3D%274%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%27%2F%3E%3Cpath%20d%3D%27m9%2014%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/forum/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2011.5a8.4%208.4%200%200%201-9%208.4%208.5%208.5%200%200%201-3.9-.9L3%2021l1.9-5.1A8.4%208.4%200%200%201%2012%203a8.5%208.5%200%200%201%209%208.5z%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/resource/"],
table.user-grade img.itemicon[src*="/pix/f/text"],
table.user-grade img.itemicon[src*="/pix/f/unknown"],
table.user-grade img.itemicon[src*="/pix/f/odf"],
table.user-grade img.itemicon[src*="/pix/f/xml"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/pdf"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/word"],
table.user-grade img.itemicon[src*="/pix/f/odt"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/excel"],
table.user-grade img.itemicon[src*="/pix/f/ods"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/powerpoint"],
table.user-grade img.itemicon[src*="/pix/f/odp"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/web"],
table.user-grade img.itemicon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M2%2012h20%27%2F%3E%3Cpath%20d%3D%27M12%202a15%2015%200%200%201%200%2020%2015%2015%200%200%201%200-20z%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/assignment/"],
table.user-grade img.itemicon[src*="/pix/mod/workshop/"],
table.user-grade img.itemicon[src*="/pix/mod/journal/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27%2F%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4z%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/glossary/"],
table.user-grade img.itemicon[src*="/pix/mod/book/"],
table.user-grade img.itemicon[src*="/pix/mod/wiki/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20V2H6.5A2.5%202.5%200%200%200%204%204.5z%27%2F%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%200%206.5%2022H20v-5%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/chat/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/choice/"],
table.user-grade img.itemicon[src*="/pix/mod/survey/"],
table.user-grade img.itemicon[src*="/pix/mod/feedback/"],
table.user-grade img.itemicon[src*="/pix/mod/questionnaire/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27%2F%3E%3Cpath%20d%3D%27M8%2017v-6M13%2017V7M18%2017v-4%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/video"],
table.user-grade img.itemicon[src*="/pix/f/avi"],
table.user-grade img.itemicon[src*="/pix/f/flash"],
table.user-grade img.itemicon[src*="/pix/mod/flashvideo/"],
table.user-grade img.itemicon[src*="/pix/mod/inwicast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D%277%204%2020%2012%207%2020%207%204%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/image"],
table.user-grade img.itemicon[src*="/pix/mod/gallery/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%2718%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%279%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27m21%2015-5-5L5%2021%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/audio"],
table.user-grade img.itemicon[src*="/pix/mod/podcast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%2018V5l12-2v13%27%2F%3E%3Ccircle%20cx%3D%276%27%20cy%3D%2718%27%20r%3D%273%27%2F%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2716%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/folder"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207a2%202%200%200%201%202-2h4l2%202h8a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/zip"],
table.user-grade img.itemicon[src*="/pix/f/dmg"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%275%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M5%208v11a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8%27%2F%3E%3Cpath%20d%3D%27M10%2012h4%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/mod/scorm/"],
table.user-grade img.itemicon[src*="/pix/mod/lesson/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%204h7a3%203%200%200%201%203%203v13a2%202%200%200%200-2-2H2z%27%2F%3E%3Cpath%20d%3D%27M22%204h-7a3%203%200%200%200-3%203v13a2%202%200%200%201%202-2h8z%27%2F%3E%3C%2Fsvg%3E");
}

/* =====================================================================
   FORMULARIOS DE MOODLE (form.mform: perfil, ajustes, tareas…)
   Cada bloque (fieldset) como tarjeta, su título como encabezado
   y el asterisco de obligatorio en rojo.
   ===================================================================== */
form.mform fieldset {
  margin: 0 0 18px 0;
  padding: 14px 20px 18px 20px;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde);
  border-radius: var(--af-radio);
}
form.mform fieldset legend {
  padding: 0 8px;
  color: #1f2937;
  font-size: 15px;
  font-weight: 700;
}
form.mform img.req {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c62828' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 4v16M5.1 8l13.8 8M5.1 16l13.8-8'/%3E%3C/svg%3E");
  width: 9px;
  height: 9px;
  margin-left: 2px;
  vertical-align: super;
}


/* =====================================================================
   PERFIL DEL USUARIO (user/view.php, table.userinfobox)
   Tarjeta blanca con la foto redonda y los datos en dos columnas.
   ===================================================================== */
table.userinfobox {
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 20px 0 !important;   /* traía margen propio y se salía por la derecha */
  border-collapse: separate;
  border-spacing: 0;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde) !important;
  border-radius: var(--af-radio);
  box-shadow: var(--af-sombra);
  overflow: hidden;
}
table.userinfobox td.side,
table.userinfobox td.content {
  background: var(--af-fondo) !important;
  border: 0 !important;
  padding: 22px 20px;
  vertical-align: top;
}
table.userinfobox td.side { width: 120px; text-align: center; }
table.userinfobox img.userpicture {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 3px var(--af-fondo), 0 0 0 4px var(--af-borde);
}
table.userinfobox table.list td { padding: 7px 0; border: 0; vertical-align: top; }
table.userinfobox table.list td.label {
  width: 1%;
  padding-right: 16px;
  white-space: nowrap;
  text-align: right;
  color: var(--af-texto-suave);
  font-size: 13px;
}
table.userinfobox table.list td.info { color: #1f2937; }
table.userinfobox table.list tr + tr td { border-top: 1px solid var(--af-borde-suave); }

/* =====================================================================
   INFORME DE ACTIVIDAD DEL ALUMNO (course/user.php, body#course-user)
   Cada sección como tarjeta; actividad e información en la misma fila; iconos grises.
   ===================================================================== */
body#course-user #content > div.section {
  margin: 0 0 14px 0;
  padding: 16px 20px;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde) !important;
  border-radius: var(--af-radio);
  box-shadow: var(--af-sombra);
}
body#course-user #content > div.section > h2 {
  margin: 0 0 8px 0;
  padding: 0;
  border: 0;
  background: none;
  color: #1f2937;
  font-size: 16px;
  font-weight: 700;
}
body#course-user #content .section .content table {
  width: 100%;
  border-collapse: collapse;
}
body#course-user #content .section .content td {
  padding: 8px 6px;
  border-bottom: 1px solid var(--af-borde-suave);
  vertical-align: middle;
}
body#course-user #content .section .content tr:last-child td { border-bottom: 0; }
/* Los datos («-», «Calificación: 5,00 / 10,00», fecha y tiempo) vienen dentro de <p>: sin márgenes y en gris */
body#course-user #content .section .content td p { margin: 0; }
body#course-user #content .section .content td:nth-child(n+3) {
  color: var(--af-texto-suave);
  font-size: 13px;
}
body#course-user #content .section .content td:first-child { width: 24px; }
body#course-user #content .section .content td:last-child {
  text-align: right;
  color: var(--af-texto-suave);
  font-size: 13px;
}
body#course-user #content .section img.icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
  filter: none;
  vertical-align: middle;
}
body#course-user #content .section img.icon[src*="/pix/mod/quiz/"],
body#course-user #content .section img.icon[src*="/pix/mod/hotpot/"],
body#course-user #content .section img.icon[src*="/pix/f/jqz"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%278%27%20y%3D%272%27%20width%3D%278%27%20height%3D%274%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%27%2F%3E%3Cpath%20d%3D%27m9%2014%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/mod/forum/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2011.5a8.4%208.4%200%200%201-9%208.4%208.5%208.5%200%200%201-3.9-.9L3%2021l1.9-5.1A8.4%208.4%200%200%201%2012%203a8.5%208.5%200%200%201%209%208.5z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/mod/resource/"],
body#course-user #content .section img.icon[src*="/pix/f/text"],
body#course-user #content .section img.icon[src*="/pix/f/unknown"],
body#course-user #content .section img.icon[src*="/pix/f/odf"],
body#course-user #content .section img.icon[src*="/pix/f/xml"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/pdf"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/word"],
body#course-user #content .section img.icon[src*="/pix/f/odt"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/excel"],
body#course-user #content .section img.icon[src*="/pix/f/ods"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/powerpoint"],
body#course-user #content .section img.icon[src*="/pix/f/odp"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/web"],
body#course-user #content .section img.icon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M2%2012h20%27%2F%3E%3Cpath%20d%3D%27M12%202a15%2015%200%200%201%200%2020%2015%2015%200%200%201%200-20z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/mod/assignment/"],
body#course-user #content .section img.icon[src*="/pix/mod/workshop/"],
body#course-user #content .section img.icon[src*="/pix/mod/journal/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27%2F%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/mod/glossary/"],
body#course-user #content .section img.icon[src*="/pix/mod/book/"],
body#course-user #content .section img.icon[src*="/pix/mod/wiki/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20V2H6.5A2.5%202.5%200%200%200%204%204.5z%27%2F%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%200%206.5%2022H20v-5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/mod/chat/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/mod/choice/"],
body#course-user #content .section img.icon[src*="/pix/mod/survey/"],
body#course-user #content .section img.icon[src*="/pix/mod/feedback/"],
body#course-user #content .section img.icon[src*="/pix/mod/questionnaire/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27%2F%3E%3Cpath%20d%3D%27M8%2017v-6M13%2017V7M18%2017v-4%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/video"],
body#course-user #content .section img.icon[src*="/pix/f/avi"],
body#course-user #content .section img.icon[src*="/pix/f/flash"],
body#course-user #content .section img.icon[src*="/pix/mod/flashvideo/"],
body#course-user #content .section img.icon[src*="/pix/mod/inwicast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D%277%204%2020%2012%207%2020%207%204%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/image"],
body#course-user #content .section img.icon[src*="/pix/mod/gallery/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%2718%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%279%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27m21%2015-5-5L5%2021%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/audio"],
body#course-user #content .section img.icon[src*="/pix/mod/podcast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%2018V5l12-2v13%27%2F%3E%3Ccircle%20cx%3D%276%27%20cy%3D%2718%27%20r%3D%273%27%2F%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2716%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/folder"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207a2%202%200%200%201%202-2h4l2%202h8a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/zip"],
body#course-user #content .section img.icon[src*="/pix/f/dmg"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%275%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M5%208v11a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8%27%2F%3E%3Cpath%20d%3D%27M10%2012h4%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/mod/scorm/"],
body#course-user #content .section img.icon[src*="/pix/mod/lesson/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%204h7a3%203%200%200%201%203%203v13a2%202%200%200%200-2-2H2z%27%2F%3E%3Cpath%20d%3D%27M22%204h-7a3%203%200%200%200-3%203v13a2%202%200%200%201%202-2h8z%27%2F%3E%3C%2Fsvg%3E");
}

/* =====================================================================
   FOTO DE PERFIL (js/perfil.js): animar a subirla
   ===================================================================== */
/* Cabecera: la inicial (sin foto) enlaza con la parte de la foto */
a.foto-enlace-cabecera { display: block; text-decoration: none; }
a.foto-enlace-cabecera .profile-avatar { transition: box-shadow .2s; }
a.foto-enlace-cabecera:hover .profile-avatar {
  box-shadow: 0 0 0 2px var(--af-fondo), 0 0 0 4px var(--af-enlace);
}

/* Perfil: silueta con icono de cámara, botón y texto */
table.userinfobox td.side { width: 180px; }
a.foto-enlace {
  position: relative;
  display: inline-block;
  border-radius: 50%;
}
a.foto-enlace:hover img.userpicture {
  box-shadow: 0 0 0 3px var(--af-fondo), 0 0 0 5px var(--af-enlace);
}
.foto-camara {
  position: absolute;
  right: 2px;
  bottom: 2px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--af-texto) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3z'/%3E%3Ccircle cx='12' cy='13' r='3'/%3E%3C/svg%3E") no-repeat center / 16px;
  box-shadow: 0 0 0 3px var(--af-fondo);
}
.foto-invitacion { margin-top: 12px; }
.foto-invitacion a.boton-foto {
  display: inline-block;
  padding: 7px 14px;
  border-radius: 999px;
  background: var(--af-texto);
  color: #ffffff;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}
.foto-invitacion a.boton-foto:hover { background: #1f2937; color: #ffffff; }
.foto-invitacion p {
  margin: 8px auto 0 auto;
  max-width: 170px;
  color: var(--af-texto-suave);
  font-size: 12px;
  line-height: 1.45;
}

/* Editar información: el bloque de la foto, arriba y destacado */
form.mform fieldset.foto-bloque {
  border-color: #9cc3e8;
  background: #f8fbfe;
}
form.mform fieldset.foto-resaltado {
  box-shadow: 0 0 0 4px rgba(6, 98, 163, .12);
}
.foto-ayuda {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 4px 0 14px 0;
}
.foto-ayuda p { margin: 0; color: var(--af-texto); font-size: 14px; line-height: 1.5; }
.foto-ayuda p strong { color: #1f2937; }
.foto-previa {
  flex-shrink: 0;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--af-borde-suave);
  box-shadow: 0 0 0 3px var(--af-fondo), 0 0 0 4px var(--af-borde);
}
.foto-previa img { width: 100%; height: 100%; object-fit: cover; display: block; }
.foto-previa-vacia {
  display: block;
  width: 100%;
  height: 100%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E") no-repeat center / 44px;
}

/* Botón «Seleccionar archivo» de todos los formularios */
input[type="file"]::file-selector-button {
  margin-right: 10px;
  padding: 7px 14px;
  border: 1px solid #d1d5db;
  border-radius: var(--af-radio-peq);
  background: var(--af-fondo);
  color: var(--af-texto);
  font-family: var(--af-letra);
  font-size: 14px;
  cursor: pointer;
}
input[type="file"]::file-selector-button:hover { background: var(--af-fondo-suave); }

@media (max-width: 767px) {
  .foto-ayuda { flex-direction: column; align-items: flex-start; }
}


/* Informe completo (course/user.php?mode=complete): los iconos llevan ruta relativa
   («../mod/resource/icon.gif», sin /pix/), por eso necesitan sus propias reglas. */
body#course-user #content .section h4 img {
  width: 18px;
  height: 18px;
  object-fit: contain;
  filter: none;
  vertical-align: -3px;
  margin-right: 4px;
}
body#course-user #content .section h4 img[src*="mod/quiz/"],
body#course-user #content .section h4 img[src*="mod/hotpot/"],
body#course-user #content .section h4 img[src*="f/jqz"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%278%27%20y%3D%272%27%20width%3D%278%27%20height%3D%274%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%27%2F%3E%3Cpath%20d%3D%27m9%2014%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="mod/forum/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2011.5a8.4%208.4%200%200%201-9%208.4%208.5%208.5%200%200%201-3.9-.9L3%2021l1.9-5.1A8.4%208.4%200%200%201%2012%203a8.5%208.5%200%200%201%209%208.5z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="mod/resource/"],
body#course-user #content .section h4 img[src*="f/text"],
body#course-user #content .section h4 img[src*="f/unknown"],
body#course-user #content .section h4 img[src*="f/odf"],
body#course-user #content .section h4 img[src*="f/xml"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/pdf"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/word"],
body#course-user #content .section h4 img[src*="f/odt"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/excel"],
body#course-user #content .section h4 img[src*="f/ods"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/powerpoint"],
body#course-user #content .section h4 img[src*="f/odp"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/web"],
body#course-user #content .section h4 img[src*="f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%2710%27%2F%3E%3Cpath%20d%3D%27M2%2012h20%27%2F%3E%3Cpath%20d%3D%27M12%202a15%2015%200%200%201%200%2020%2015%2015%200%200%201%200-20z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="mod/assignment/"],
body#course-user #content .section h4 img[src*="mod/workshop/"],
body#course-user #content .section h4 img[src*="mod/journal/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27%2F%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="mod/glossary/"],
body#course-user #content .section h4 img[src*="mod/book/"],
body#course-user #content .section h4 img[src*="mod/wiki/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20V2H6.5A2.5%202.5%200%200%200%204%204.5z%27%2F%3E%3Cpath%20d%3D%27M4%2019.5A2.5%202.5%200%200%200%206.5%2022H20v-5%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="mod/chat/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="mod/choice/"],
body#course-user #content .section h4 img[src*="mod/survey/"],
body#course-user #content .section h4 img[src*="mod/feedback/"],
body#course-user #content .section h4 img[src*="mod/questionnaire/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27%2F%3E%3Cpath%20d%3D%27M8%2017v-6M13%2017V7M18%2017v-4%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/video"],
body#course-user #content .section h4 img[src*="f/avi"],
body#course-user #content .section h4 img[src*="f/flash"],
body#course-user #content .section h4 img[src*="mod/flashvideo/"],
body#course-user #content .section h4 img[src*="mod/inwicast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D%277%204%2020%2012%207%2020%207%204%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/image"],
body#course-user #content .section h4 img[src*="mod/gallery/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%2718%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%279%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27m21%2015-5-5L5%2021%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/audio"],
body#course-user #content .section h4 img[src*="mod/podcast/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%2018V5l12-2v13%27%2F%3E%3Ccircle%20cx%3D%276%27%20cy%3D%2718%27%20r%3D%273%27%2F%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2716%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/folder"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%207a2%202%200%200%201%202-2h4l2%202h8a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/zip"],
body#course-user #content .section h4 img[src*="f/dmg"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%273%27%20width%3D%2718%27%20height%3D%275%27%20rx%3D%271%27%2F%3E%3Cpath%20d%3D%27M5%208v11a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8%27%2F%3E%3Cpath%20d%3D%27M10%2012h4%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="mod/scorm/"],
body#course-user #content .section h4 img[src*="mod/lesson/"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%204h7a3%203%200%200%201%203%203v13a2%202%200%200%200-2-2H2z%27%2F%3E%3Cpath%20d%3D%27M22%204h-7a3%203%200%200%200-3%203v13a2%202%200%200%201%202-2h8z%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 {
  border-bottom: 1px solid var(--af-borde-suave);
  color: #1f2937;
  font-size: 14px;
}
/* Detalle bajo cada actividad («Nunca visto», «No hay mensajes», intentos…) en gris */
body#course-user #content .section h4 + * { color: var(--af-texto-suave); font-size: 13px; }

/* =====================================================================
   MIGAS EN LA CABECERA FIJA (js/cabecera.js crea nav#cab-migas)
   Solo cuando la cabecera está fija (al subir) y en pantallas ≥ 1024 px.
   Cada elemento se recorta con «…»; el texto completo sale en la ayuda.
   ===================================================================== */
#cab-migas { display: none; }
@media (min-width: 1024px) {
  body.cab-fija #cab-migas {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0 8px 0 4px;
    overflow: hidden;
  }
  body.cab-fija #cab-migas ul {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    flex-wrap: nowrap;
    min-width: 0;
  }
  body.cab-fija #cab-migas li {
    display: block;
    min-width: 0;
    max-width: 230px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    color: #1f2937;
    font-size: 13px;
    font-weight: 600;
  }
  body.cab-fija #cab-migas li a {
    padding: 0;
    margin: 0;
    border: 0;
    background: none;
    color: var(--af-enlace);
    font-size: 13px;
    font-weight: 400;
  }
  body.cab-fija #cab-migas li a:hover { color: var(--af-enlace-hover); background: none; }
  body.cab-fija #cab-migas .accesshide { position: absolute; left: -9999px; }
  body.cab-fija #cab-migas .sep {
    margin-right: 6px;
    font-size: 9px;
    color: #b0b4bb;
  }
}

/* =====================================================================
   PANEL EN MÓVIL Y TABLETA (≤ 1100 px): cajón superpuesto desde la derecha
   drawer.js pone body.drawer-open al pulsar «Mostrar panel» y crea #drawer-fondo
   (fondo oscuro, cierra al tocarlo) y #drawer-cerrar (X dentro del panel). También cierra con Esc.
   ===================================================================== */
#drawer-fondo,
#drawer-cerrar { display: none; }

@media (max-width: 1100px) {
  body.drawer-open #layout-table #right-column {
    position: fixed !important;
    top: 0 !important;
    right: 0;
    bottom: 0;
    z-index: 9600;
    width: min(360px, 88vw) !important;
    height: 100vh;
    box-sizing: border-box;
    overflow-y: auto !important;
    padding: 60px 16px 20px 16px !important;
    background: var(--af-fondo-suave);
    border-left: 0 !important;
    box-shadow: -10px 0 30px rgba(17, 24, 39, .2);
    animation: af-cajon-entra .22s ease-out;
  }
  body.drawer-open #drawer-fondo {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 9550;
    background: rgba(17, 24, 39, .4);
  }
  body.drawer-open { overflow: hidden; }      /* la página de detrás no se desplaza */
  body.drawer-open #drawer-cerrar {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--af-borde);
    border-radius: 50%;
    background: var(--af-fondo);
    color: var(--af-texto);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
  }
  body.drawer-open #drawer-cerrar:hover { background: var(--af-borde-suave); }
  body.drawer-open #right-column .sideblock { margin-bottom: 12px; }
}
@keyframes af-cajon-entra {
  from { transform: translateX(100%); }
  to   { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.drawer-open #layout-table #right-column { animation: none; }
}

/* =====================================================================
   ICONO DE ENLACE EXTERNO (recurso «web», f/web): documento con flecha ↗
   y también las páginas HTML (f/html): todos los enlaces comparten icono.
   Sustituye al globo en todos los sitios (van al final para tener prioridad).
   ===================================================================== */
#course-view .section li.activity img.activityicon[src*="/pix/f/web"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity img.activityicon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/web"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
#course-view .section li.activity:hover img.activityicon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23d80000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/web"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
.sideblock .content img.icon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/web"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
table.user-grade img.itemicon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/web"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section img.icon[src*="/pix/f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/web"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}
body#course-user #content .section h4 img[src*="f/html"] {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2364748b%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h6%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M20%208v4%27%2F%3E%3Cpath%20d%3D%27M15%2022l6-6%27%2F%3E%3Cpath%20d%3D%27M16%2016h5v5%27%2F%3E%3Cpath%20d%3D%27M8%2013h6M8%2017h3%27%2F%3E%3C%2Fsvg%3E");
}

/* =====================================================================
   ENTRADA AL CAMPUS · versión compacta (sustituye medidas del PASO 8)
   - sin el título «Alumnos inscritos» ni el texto de cookies / «¿Olvidó…?» (con su icono)
   - «He olvidado mi contraseña» | «Ver los cursos» en una línea, como enlaces discretos
     (los textos los cambia js/cabecera.js; los botones son los de Moodle)
   ===================================================================== */
body#login-index .loginbox {
  margin: 28px auto 24px auto;
  padding: 26px 26px 14px 26px;
}
body#login-index .loginpanel {
  display: flex;
  flex-wrap: wrap;
}
body#login-index .loginpanel > * { flex: 0 0 100%; }
body#login-index .loginpanel h3 { display: none; }
body#login-index .loginform .form-label label { margin-bottom: 5px; }
body#login-index .loginform .form-input { margin-bottom: 12px; }
body#login-index #username,
body#login-index #password { height: 42px; }
body#login-index .loginform input[type="submit"] {
  height: 44px;
  margin-top: 8px;
}
/* Texto de cookies y «¿Olvidó…?» (con el icono de ayuda): fuera */
body#login-index .forgotsub .desc { display: none; }
/* Los dos enlaces en una línea, con línea vertical entre ellos */
body#login-index .loginpanel > .forgotsub,
body#login-index .loginpanel > .guestsub {
  flex: 1 1 0;
  margin: 18px 0 0 0;
  padding: 12px 0 0 0;
  border-top: 1px solid var(--af-borde-suave);
  text-align: center;
}
body#login-index .loginpanel > .guestsub {
  border-left: 1px solid var(--af-borde-suave);
}
body#login-index .forgotsub input[type="submit"],
body#login-index .guestsub input[type="submit"] {
  margin: 0;
  padding: 4px 8px;
  border: 0;
  background: none;
  color: var(--af-enlace);
  font-size: 13px;
  font-weight: 400;
}
body#login-index .forgotsub input[type="submit"]:hover,
body#login-index .guestsub input[type="submit"]:hover {
  background: none;
  color: var(--af-enlace-hover);
  text-decoration: underline;
}
body#login-index .guestsub p { margin: 0 !important; }

/* =====================================================================
   CONTRASEÑA OLVIDADA (body#login-forgot_password)
   Textos (instrucciones y aviso) encima, en un bloque ancho y centrado; la tarjeta solo con
   los campos y los botones «Volver» | «Enviar» en una línea. Textos y botones: js/cabecera.js.
   El mensaje que sale después de enviar (misma página) se ve en el bloque de texto.
   ===================================================================== */
body#login-forgot_password #content .generalbox {
  width: auto;
  max-width: 680px;                 /* más ancho que la tarjeta: el texto queda en dos líneas */
  box-sizing: border-box;
  margin: 24px auto 14px auto;
  padding: 12px 16px;
  background: #fff8e1;              /* amarillo claro */
  border: 1px solid #f5e3a3;
  border-radius: var(--af-radio);
  color: #1f2937;
  font-size: 14px;
  line-height: 1.55;
  text-align: left;
}
body#login-forgot_password #content .generalbox p { margin: 0; }
/* Recordatorio, debajo del formulario */
.olvido-aviso {
  max-width: 680px;
  box-sizing: border-box;
  margin: 0 auto 28px auto;
  padding: 10px 14px;
  background: #eef5fc;
  border-radius: var(--af-radio-peq);
  color: #1f2937;
  font-size: 13px;
  line-height: 1.5;
  text-align: left;
}
/* Tarjeta: el formulario */
body#login-forgot_password form.mform {
  width: auto;
  max-width: 420px;
  margin: 0 auto 14px auto;
  padding: 22px 24px 18px 24px;
  box-sizing: border-box;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(17, 24, 39, .08);
}
body#login-forgot_password form.mform fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}
body#login-forgot_password form.mform legend,
body#login-forgot_password form.mform .advancedbutton { display: none; }
body#login-forgot_password form.mform .fitem { margin: 0 0 12px 0; }
body#login-forgot_password form.mform .fitemtitle,
body#login-forgot_password form.mform .felement {
  float: none;
  width: auto;
  margin: 0;
  text-align: left;
}
body#login-forgot_password form.mform .fitemtitle label {
  display: block;
  margin: 0 0 5px 0;
  color: var(--af-texto);
  font-size: 14px;
  font-weight: 600;
}
body#login-forgot_password form.mform input[type="text"] {
  width: 100%;
  height: 42px;
  box-sizing: border-box;
}
/* Botones en una línea: «Enviar» (principal, más ancho) | «Volver» (contorno) */
body#login-forgot_password form.mform .fgroup .fitemtitle { display: none; }
body#login-forgot_password form.mform fieldset.felement.fgroup {
  display: flex;
  flex-direction: row;             /* «Enviar» primero (así va en el HTML) y «Volver» después */
  gap: 8px;
  margin-top: 4px;
}
body#login-forgot_password #id_submitbutton,
body#login-forgot_password #id_cancel {
  height: 44px;
  margin: 0;
  font-size: 15px;
}
body#login-forgot_password #id_submitbutton {
  flex: 2 1 0;
  background-color: var(--af-texto);
  border-color: var(--af-texto);
  color: #ffffff;
  font-weight: 600;
}
body#login-forgot_password #id_submitbutton:hover { background-color: #1f2937; border-color: #1f2937; }
body#login-forgot_password #id_cancel { flex: 1 1 0; }
/* Mensaje después de enviar: botón «Continuar» centrado */
body#login-forgot_password #content .singlebutton,
body#login-forgot_password #content .continuebutton { text-align: center; margin-top: 8px; }

/* =====================================================================
   ENTRADA · «He olvidado mi contraseña» bajo «Entrar» y accesos a las webs de cursos
   (sustituye a la línea «He olvidado mi contraseña | Ver los cursos»)
   ===================================================================== */
body#login-index .loginpanel > .guestsub { display: none; }       /* «Ver los cursos» del campus: fuera */
body#login-index .loginpanel > .forgotsub {
  flex: 0 0 100%;
  margin: 10px 0 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;      /* era también un .generalbox: sin su recuadro gris */
}
body#login-index .forgotsub input[type="submit"] {
  width: 100%;
  height: 42px;
  padding: 0 14px;
  border: 1px solid #d1d5db;
  border-radius: var(--af-radio-peq);
  background: var(--af-fondo);
  color: var(--af-texto);
  font-size: 14px;
  font-weight: 500;
}
body#login-index .forgotsub input[type="submit"]:hover {
  background: var(--af-fondo-suave);
  color: var(--af-texto);
  text-decoration: none;
}
body#login-index .loginbox { padding-bottom: 22px; }

/* Accesos a las webs de cursos (js/cabecera.js), debajo de la tarjeta */
.webs-cursos {
  max-width: 400px;               /* mismo ancho que la tarjeta de entrada */
  margin: 0 auto 28px auto;
  text-align: center;
}
.webs-cursos-titulo {
  margin: 0 0 10px 0;
  color: var(--af-texto-suave);
  font-size: 13px;
}
.webs-cursos-enlaces {             /* 2 × 2 */
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.webs-cursos-enlaces a {
  justify-content: center;
  padding-left: 10px;             /* «Academia de oposiciones» cabe en una línea */
  padding-right: 10px;
  white-space: nowrap;
}
.webs-cursos-enlaces a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border: 1px solid var(--af-borde);
  border-radius: 999px;
  background: var(--af-fondo);
  color: var(--af-texto);
  font-size: 13px;
  text-decoration: none;
  transition: background-color .2s, border-color .2s, color .2s;
}
.webs-cursos-enlaces a::after {           /* flecha ↗: se abre en otra web */
  content: "";
  width: 12px;
  height: 12px;
  background-color: #94a3b8;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") no-repeat center / contain;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") no-repeat center / contain;
}
/* «Cursos bonificados para trabajadores»: primera fila, a lo ancho de las dos columnas */
.webs-cursos-enlaces a.web-ancha { grid-column: 1 / -1; }
/* Web principal (aulaformacion.es): al final y a lo ancho de las dos columnas */
.webs-cursos-enlaces a.web-principal {
  grid-column: 1 / -1;
  font-weight: 600;
}
.webs-cursos-enlaces a:hover {
  background: var(--af-fondo-suave);
  border-color: #d5d9e0;
  color: var(--af-enlace-hover);
}

/* =====================================================================
   ACTIVIDADES AL PASAR EL RATÓN (afinado en producción, 2026-11-12)
   - Enlace en rojo oscuro de la marca (antes azul oscuro); el icono también (reglas de arriba).
   - Capa de alumnos (progreso.css hace girar el icono): giro lento. La transición corta
     (.25s) del efecto «crece» hacía que la vuelta entera fuera demasiado rápida.
   ===================================================================== */
#course-view .section li.activity:hover > a,
#course-view .section li.activity > a:hover {
  color: var(--af-rojo-oscuro);
}
body#course-view.control-progreso-on .section li.activity img.activityicon {
  transition: transform .9s cubic-bezier(.4, 0, .2, 1);
}

/* =====================================================================
   «SALTAR A LA SECCIÓN…» EN LA BARRA DE MIGAS (alumnos, progreso.js)
   A la derecha de «Ocultar panel», con su mismo aspecto. progreso.css lo pinta flotante
   con !important: aquí se anula solo cuando está en la barra (clase en-navbar).
   ===================================================================== */
#nav-rapida-container.en-navbar {
  position: static;
  width: auto;
  z-index: auto;
}
#nav-rapida-container.en-navbar #nav-rapida-select {
  width: auto;
  max-width: 280px;
  height: 34px;
  padding: 0 28px 0 12px !important;
  border: 1px solid var(--af-borde) !important;
  border-radius: var(--af-radio-peq) !important;
  background: var(--af-fondo) !important;
  box-shadow: none !important;
  color: var(--af-texto) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  -webkit-appearance: auto;
          appearance: auto;          /* vuelve la flecha del desplegable */
}
#nav-rapida-container.en-navbar #nav-rapida-select:hover {
  background: var(--af-fondo-suave) !important;
  border-color: #d5d9e0 !important;
}
@media (max-width: 767px) {
  #nav-rapida-container.en-navbar #nav-rapida-select { max-width: 100%; }
}

/* =====================================================================
   PASTILLA FLOTANTE «IR A LA SECCIÓN… | ▲» (alumnos, progreso.js)
   Abajo a la derecha; aparece al bajar (a la vez que el antiguo botón de subir) y sube
   por encima del pie al llegar al final. Dentro: copia del selector de secciones y el botón de subir.
   ===================================================================== */
#nav-pildora {
  position: fixed;
  right: 20px;
  bottom: 25px;
  z-index: 9000;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde);
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(17, 24, 39, .15);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
#nav-pildora.visible { opacity: 1; visibility: visible; }
#nav-pildora-select {
  width: auto;
  max-width: 210px;
  height: 36px;
  padding: 0 24px 0 14px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--af-texto) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  cursor: pointer;
  -webkit-appearance: auto;
          appearance: auto;
}
#nav-pildora-select:hover { background: var(--af-fondo-suave) !important; }
/* El botón de subir, dentro de la pastilla: círculo gris oscuro */
#nav-pildora #btn-volver-arriba {
  position: static;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--af-texto);
  color: #ffffff;
  font-size: 13px;
  box-shadow: none;
  backdrop-filter: none;
  opacity: 1;
  visibility: visible;
  cursor: pointer;
}
#nav-pildora #btn-volver-arriba:hover { background: #1f2937; }
@media (max-width: 480px) {
  #nav-pildora { right: 10px; }
  #nav-pildora-select { max-width: 150px; }
}

/* =====================================================================
   ENTRADA PERSONALIZADA DEL CAMPUS OFICIAL (login/index_form.html + login/login-styles.css)
   El oficial no usa la entrada estándar (.loginbox) sino .modern-login-wrapper / .loginpanel-modern.
   login-styles.css se carga DESPUÉS de esta hoja: por eso estas reglas llevan body#login-index
   (más prioridad) y !important donde la suya lo lleva. Mismo diseño que la entrada estándar.
   ===================================================================== */
body#login-index .modern-login-wrapper {
  display: block;
  max-width: 400px;
  margin: 28px auto 16px auto;
  font-family: var(--af-letra);
}
body#login-index .loginpanel-modern {
  display: block;
  min-width: 0;
  padding: 26px 26px 22px 26px;
  background: var(--af-fondo);
  border: 1px solid var(--af-borde);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(17, 24, 39, .08);
  text-align: left;
}
body#login-index .loginpanel-modern h3,
body#login-index .loginpanel-modern .cookies-info { display: none; }
body#login-index .loginpanel-modern .form-row {
  max-width: none;
  margin: 0 0 12px 0;
}
body#login-index .loginpanel-modern .form-row label {
  margin: 0 0 5px 0;
  color: var(--af-texto);
  font-size: 14px;
  font-weight: 600;
}
body#login-index .loginpanel-modern .form-row input#username,
body#login-index .loginpanel-modern .form-row input#password {
  width: 100%;
  height: 42px;
  box-sizing: border-box;
  padding: 0 12px !important;
  border: 1px solid #d1d5db;
  border-radius: var(--af-radio-peq);
  background: var(--af-fondo) !important;     /* sin los iconos dentro del campo */
  color: var(--af-texto);
  font-size: 15px;
}
body#login-index .loginpanel-modern .btn-primary-modern {
  display: block;
  width: 100%;
  max-width: none;
  height: 44px;
  margin: 8px 0 0 0;
  border: 1px solid var(--af-texto);
  border-radius: var(--af-radio-peq);
  background: var(--af-texto);
  box-shadow: none;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  transform: none;
}
body#login-index .loginpanel-modern .btn-primary-modern:hover {
  background: #1f2937;
  box-shadow: none;
  transform: none;
}
body#login-index .loginpanel-modern .btn-footer-modern {
  width: 100%;
  height: 42px;
  margin: 10px 0 0 0;
  padding: 0 14px;
  border: 1px solid #d1d5db;
  border-radius: var(--af-radio-peq);
  background: var(--af-fondo);
  color: var(--af-texto);
  font-size: 14px;
  font-weight: 500;
}
body#login-index .loginpanel-modern .btn-footer-modern:hover { background: var(--af-fondo-suave); }
