/* =====================================================================
   OpoReal · Opiniones
   ---------------------------------------------------------------------
   Prefijo `opr-rs-`. Comprobado el 25 de septiembre de 2026 que ningún
   otro plugin lo usa.

   OJO CON LOS COMENTARIOS: aquí dentro no puede haber una llave suelta.
   `anidar()` busca bloques por llaves y no distingue los comentarios.

   LAS ESTRELLAS SON DE TINTA, NO AMARILLAS. El sistema es monocromo y el
   color solo aparece cuando significa algo. Una estrella amarilla no
   significa nada que no diga ya la cifra de al lado: sería decoración.
   El único color de este fichero es el punto del estado de TU opinión
   —ámbar pendiente, verde publicada, rojo no publicada—, que aparece
   después de que el usuario haya hecho algo y dice qué ha pasado con ello.
   ===================================================================== */

/* --- lo que solo oye un lector de pantalla --- */
.opr-rs .opr-rs-oculto{position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important;
  overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important}


/* --- estrellas de lectura --- */
.opr-rs .opr-rs-estrellas{display:inline-flex !important; gap:2px !important; align-items:center !important; color:var(--p200) !important}
.opr-rs .opr-rs-e{display:block !important; line-height:0 !important}
.opr-rs .opr-rs-e svg{width:16px !important; height:16px !important; fill:currentColor !important}
.opr-rs .opr-rs-e.es-llena{color:var(--tinta) !important}


/* =====================================================================
   El cajón de /contacto/
   ===================================================================== */
.opr-rs.opr-rs-cajon{scroll-margin-top:calc(var(--opr-cabecera, 0px) + 12px) !important}


/* LA BANDA, DE LADO A LADO. La sección vive dentro del `<main>` del contacto,
   y Astra lo encajona: el fondo gris se quedaba en una caja con dos franjas
   blancas a los lados. Se vio en el sitio el 25 de septiembre, no en la
   prueba, que llevaba otro tema. El fondo lo pinta una sombra enorme y el
   `clip-path` la recorta arriba y abajo, como las bandas de Mi progreso:
   `100vw` incluiría la barra de desplazamiento. */
.opr-rs.opr-rs-cajon{box-shadow:0 0 0 100vmax var(--fondo) !important; clip-path:inset(0 -100vmax) !important}
.opr-rs .opr-rs-cabeza{margin-bottom:clamp(26px,3.2vw,40px) !important}


/* Dos columnas: a la izquierda la nota y tu opinión, a la derecha lo que
   dicen los demás. La lista ocupa las dos filas de la derecha. */
.opr-rs .opr-rs-cuerpo{
  display:grid !important; grid-template-columns:minmax(0,360px) minmax(0,1fr) !important;
  grid-template-areas:"arriba lista" "lado lista" !important;
  grid-template-rows:auto 1fr !important;
  gap:14px clamp(24px,3.4vw,56px) !important; align-items:start !important;
}
.opr-rs .opr-rs-arriba{grid-area:arriba !important}
.opr-rs .opr-rs-lado{grid-area:lado !important}
.opr-rs .opr-rs-lista{grid-area:lista !important; display:grid !important; gap:14px !important; align-content:start !important}


/* --- la nota media y el reparto --- */
.opr-rs .opr-rs-cifras{
  padding:18px 20px !important; border-radius:var(--radio) !important;
  background:var(--p950) !important; color:var(--p100) !important;
  display:grid !important; gap:16px !important;
}
.opr-rs .opr-rs-cifras .opr-rs-estrellas{color:var(--p700) !important}
.opr-rs .opr-rs-cifras .opr-rs-e.es-llena{color:#fff !important}
.opr-rs .opr-rs-media{display:grid !important; grid-template-columns:auto 1fr !important; grid-template-rows:auto auto !important;
  column-gap:14px !important; align-items:center !important}
.opr-rs .opr-rs-media b{grid-row:1 / 3 !important; font-size:3rem !important; font-weight:800 !important; line-height:1 !important;
  letter-spacing:-.04em !important; color:#fff !important}
.opr-rs .opr-rs-media .opr-rs-e svg{width:18px !important; height:18px !important}
.opr-rs .opr-rs-media span.opr-cifra{font-size:.875rem !important; color:var(--p400) !important}
.opr-rs .opr-rs-reparto{display:grid !important; gap:6px !important}
.opr-rs .opr-rs-reparto li{display:grid !important; grid-template-columns:12px minmax(0,1fr) 28px !important; gap:10px !important;
  align-items:center !important; font-size:.8125rem !important; color:var(--p400) !important}
.opr-rs .opr-rs-barra-num{text-align:right !important; font-variant-numeric:tabular-nums !important}
.opr-rs .opr-rs-barra{display:block !important; height:6px !important; border-radius:999px !important; background:var(--p800) !important; overflow:hidden !important}
.opr-rs .opr-rs-barra i{display:block !important; height:100% !important; border-radius:999px !important; background:var(--p100) !important}
.opr-rs .opr-rs-barra-cuenta{text-align:right !important}
.opr-rs .opr-rs-cifras b{display:block !important}
.opr-rs .opr-rs-cifras.es-vacia b, .opr-rs .opr-rs-cifras.es-pocas b{font-size:1.0625rem !important; font-weight:800 !important; letter-spacing:-.018em !important; color:#fff !important}
.opr-rs .opr-rs-cifras.es-vacia span, .opr-rs .opr-rs-cifras.es-pocas span{display:block !important; margin-top:-10px !important; font-size:.875rem !important; color:var(--p400) !important; line-height:1.5 !important}


/* --- una opinión --- */
.opr-rs .opr-rs-op{
  padding:18px 20px !important; border-radius:var(--radio) !important; background:var(--superficie) !important;
  box-shadow:inset 0 0 0 1px var(--borde), var(--sombra-s) !important;
  display:grid !important; gap:10px !important; align-content:start !important;
}
.opr-rs .opr-rs-op-cabeza{display:flex !important; justify-content:space-between !important; align-items:center !important; gap:12px !important; flex-wrap:wrap !important}
.opr-rs .opr-rs-op-cabeza time{font-size:.8125rem !important; color:var(--tenue) !important}
.opr-rs .opr-rs-op-texto{font-size:1rem !important; line-height:1.6 !important; color:var(--tinta) !important;
  white-space:pre-line !important; overflow-wrap:anywhere !important; max-width:68ch !important}

/* La firma, en todas partes igual (v1.0.9): tres renglones fijos —nombre,
   lo que prepara y «Usuario con cuenta»— con el avatar a la izquierda de los
   dos primeros. En la franja esos tres renglones además se comparten entre las
   tarjetas (más abajo). Sin «Prepara…», su renglón queda vacío. */
.opr-rs .opr-rs-op-firma{display:grid !important; grid-template-columns:44px minmax(0,1fr) !important; column-gap:12px !important;
  align-items:start !important; justify-items:start !important; font-size:.875rem !important; color:var(--suave) !important}
.opr-rs .opr-rs-op-firma > .opr-rs-avatar{grid-column:1 !important; grid-row:1 / span 2 !important; align-self:center !important}
.opr-rs .opr-rs-op-firma > b{grid-column:2 !important; grid-row:1 !important; font-weight:700 !important; color:var(--tinta) !important}
.opr-rs .opr-rs-op-firma > .opr-rs-prepara{grid-column:2 !important; grid-row:2 !important; margin-top:2px !important}

/* «Usuario con cuenta» va debajo de todo y de lado a lado, también bajo el
   avatar: en la columna del texto, a 1024 px, se partía en dos renglones. */
.opr-rs .opr-rs-op-firma > .opr-rs-verificado{grid-column:1 / -1 !important; grid-row:3 !important; margin-top:10px !important; white-space:nowrap !important}

/* Los avatares vienen compuestos sobre --p900 y cuadrados: el círculo lo
   pone esto. La silueta, para quien firma con nombre y no ha elegido
   avatar, es la del botón «Mi perfil» de la cabecera. */
.opr-rs .opr-rs-avatar{display:block !important; width:44px !important; height:44px !important; border-radius:50% !important; object-fit:cover !important; background:var(--p900) !important}
.opr-rs .opr-rs-avatar.es-silueta{display:grid !important; place-items:center !important; background:var(--p100) !important; color:var(--p500) !important;
  box-shadow:inset 0 0 0 1px var(--borde) !important}
.opr-rs .opr-rs-avatar.es-silueta svg{width:24px !important; height:24px !important}
.opr-rs .opr-rs-verificado{display:inline-flex !important; align-items:center !important; gap:5px !important; color:var(--suave) !important}
.opr-rs .opr-rs-verificado svg{width:15px !important; height:15px !important; fill:none !important; stroke:currentColor !important;
  stroke-width:2.2 !important; stroke-linecap:round !important; stroke-linejoin:round !important}


/* La respuesta va dentro de la opinión, con una raya a la izquierda: se lee
   como contestación a esa y no como una opinión más. */
.opr-rs .opr-rs-respuesta{margin-top:4px !important; padding:12px 14px !important; border-radius:var(--radio-s) !important;
  background:var(--p50) !important; box-shadow:inset 3px 0 0 var(--p950) !important}
.opr-rs .opr-rs-respuesta b{display:block !important; font-size:.8125rem !important; font-weight:700 !important; color:var(--tinta) !important; margin-bottom:4px !important}
.opr-rs .opr-rs-respuesta p{font-size:.9375rem !important; line-height:1.55 !important; color:var(--suave) !important;
  white-space:pre-line !important; overflow-wrap:anywhere !important}
.opr-rs .opr-rs-mas{justify-self:start !important; margin-top:4px !important}


/* EL PESO DE LOS BOTONES. El núcleo pone `font:inherit` a todo `button` con
   (0,1,1), y eso le gana a `.opr-btn` (0,1,0): el `<button>` salía a 400 y el
   `<a>` de al lado, que no es un botón, a 700. Aquí pesa (0,2,0). */
.opr-rs .opr-btn{font-weight:700 !important; font-size:1rem !important; line-height:1 !important; letter-spacing:-.012em !important}


/* =====================================================================
   La página /opiniones/
   ---------------------------------------------------------------------
   Nuestro `<main>` cuelga de `.ast-container`, que es flex: sin esto se
   encoge a su contenido y deja una franja muerta a la derecha. Trampa
   número 6 del documento 02.
   ===================================================================== */
.opr.opr-rs-pagina{width:100% !important; flex:1 1 100% !important}


/* =====================================================================
   La franja de la home y de /planes/
   ===================================================================== */
.opr-rs .opr-rs-franja-cabeza{display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; gap:24px 40px !important;
  align-items:end !important; margin-bottom:clamp(26px,3.2vw,40px) !important}
.opr-rs .opr-rs-franja-media{display:flex !important; align-items:center !important; gap:14px !important}
.opr-rs .opr-rs-franja-media b{font-size:3rem !important; font-weight:800 !important; line-height:1 !important; letter-spacing:-.04em !important; color:var(--tinta) !important}
.opr-rs .opr-rs-franja-media > span{display:grid !important; gap:4px !important}
.opr-rs .opr-rs-franja-media .opr-rs-e svg{width:18px !important; height:18px !important}
.opr-rs .opr-rs-franja-media span.opr-cifra{font-size:.875rem !important; color:var(--suave) !important}

/* --- el carrusel (v1.0.12) ---
   El carril recorta y es el contenedor de medida: cada tarjeta mide un
   tercio de él (`cqw`) en el PC, la mitad en tableta y casi entero en el
   móvil, con un trozo de la siguiente a la vista para que se entienda que
   hay más. La pista la mueve `carrusel.js` con `transform` EN LÍNEA: aquí
   NO se declara `transform` en la pista, porque con el blindaje llevaría
   `!important` y le ganaría al estilo en línea. Es la trampa del hero.
   Sin guion, el carril se desplaza a mano con su barra. */
.opr-rs .opr-rs-carrusel{position:relative !important}
.opr-rs .opr-rs-carril{container-type:inline-size !important; overflow-x:auto !important; overflow-y:hidden !important;
  padding:4px 0 12px !important; margin:-4px 0 -12px !important}
.opr-rs .opr-rs-carrusel.es-vivo .opr-rs-carril{overflow:hidden !important; touch-action:pan-y !important}
.opr-rs .opr-rs-carrusel.es-arrastrando .opr-rs-carril{cursor:grabbing !important; user-select:none !important}
.opr-rs .opr-rs-franja-lista{display:grid !important; grid-auto-flow:column !important; grid-auto-columns:calc((100cqw - 28px) / 3) !important;
  column-gap:14px !important; width:max-content !important; align-items:stretch !important; will-change:transform !important}

/* En la franja, cada opinión en seis renglones como mucho, y sin la
   respuesta: entera está en /opiniones/. */
.opr-rs .opr-rs-franja-lista .opr-rs-op-texto{display:-webkit-box !important; -webkit-line-clamp:6 !important; -webkit-box-orient:vertical !important; overflow:hidden !important}
.opr-rs .opr-rs-franja-lista .opr-rs-respuesta{display:none !important}
.opr-rs.opr-rs-franja.es-blanca .opr-rs-op{background:var(--p50) !important}
.opr-rs .opr-rs-franja-pie{margin-top:22px !important}


/* Las flechas, una a cada lado, montadas sobre el borde de la tarjeta. La
   sección recorta en horizontal (`overflow-x:clip`), así que medio botón
   fuera no desplaza la página. Si caben todas a la vista, no salen. */
.opr-rs .opr-rs-flecha{position:absolute !important; top:50% !important; z-index:2 !important; width:44px !important; height:44px !important; margin-top:-22px !important;
  display:grid !important; place-items:center !important; border-radius:999px !important; cursor:pointer !important;
  background:var(--superficie) !important; color:var(--tinta) !important; box-shadow:inset 0 0 0 1px var(--borde), var(--sombra-s) !important}
.opr-rs .opr-rs-flecha svg{width:20px !important; height:20px !important}
.opr-rs .opr-rs-flecha:hover{background:var(--p100) !important}
.opr-rs .opr-rs-flecha.es-antes{left:-22px !important}
.opr-rs .opr-rs-flecha.es-despues{right:-22px !important}
.opr-rs .opr-rs-carrusel:not(.es-vivo) .opr-rs-flecha, .opr-rs .opr-rs-carrusel.es-quieto .opr-rs-flecha{display:none !important}
.opr-rs .opr-rs-franja-todas{display:none !important}


/* Las tarjetas, alineadas renglón a renglón: las estrellas, el
   comentario, el avatar, el nombre, lo que prepara y «Usuario con cuenta»
   caen a la misma altura en todas, también en las que entran después.
   Base para navegadores sin subgrid: columna con la firma al fondo. */
.opr-rs .opr-rs-franja-lista .opr-rs-op{display:flex !important; flex-direction:column !important; gap:0 !important}
.opr-rs .opr-rs-franja-lista .opr-rs-op-texto{margin-top:10px !important}
.opr-rs .opr-rs-franja-lista .opr-rs-op-firma{margin-top:auto !important; padding-top:14px !important}


/* Con subgrid, cada tarjeta ocupa cinco filas de la pista y las comparte
   con todas las demás. */

@supports (grid-template-rows:subgrid){
.opr-rs .opr-rs-franja-lista{grid-template-rows:repeat(5,auto) !important; row-gap:0 !important}
.opr-rs .opr-rs-franja-lista .opr-rs-op{display:grid !important; grid-row:span 5 !important; grid-template-rows:subgrid !important; row-gap:0 !important}
.opr-rs .opr-rs-franja-lista .opr-rs-op-texto{align-self:start !important}
.opr-rs .opr-rs-franja-lista .opr-rs-op-firma{grid-row:span 3 !important; grid-template-rows:subgrid !important; margin-top:0 !important}
}


/* Tableta: dos a la vista. */

@media (max-width:900px){
.opr-rs .opr-rs-franja-lista{grid-auto-columns:calc((100cqw - 14px) / 2) !important}
}


/* Móvil: la cabecera grande se queda en un cajón ancho y bajo —la nota,
   las estrellas, cuántas y «Ver todas»— y debajo el carrusel con una
   tarjeta a la vista y un trozo de la siguiente. Las flechas, debajo y
   juntas: a los lados taparían el texto de una tarjeta que ocupa todo. */

@media (max-width:760px){
.opr-rs .opr-rs-franja-cabeza{grid-template-columns:1fr !important; gap:16px !important; margin-bottom:18px !important}
.opr-rs .opr-rs-franja-cabeza .opr-h2 br{display:none !important}

  /* Oscuro, como la caja de la nota de /opiniones/ (v1.0.13, Sergio: del
     color de las tarjetas no se distinguía de ellas). Igual en fondo claro
     y en blanco. */
.opr-rs .opr-rs-franja-media{padding:12px 16px !important; border-radius:var(--radio) !important; background:var(--p950) !important; gap:12px !important}
.opr-rs .opr-rs-franja-media b{font-size:2.125rem !important; color:#fff !important}
.opr-rs .opr-rs-franja-media .opr-rs-estrellas{color:var(--p700) !important}
.opr-rs .opr-rs-franja-media .opr-rs-e.es-llena{color:#fff !important}
.opr-rs .opr-rs-franja-media span.opr-cifra{color:var(--p300) !important}
.opr-rs .opr-rs-franja-media .opr-rs-e svg{width:15px !important; height:15px !important}
.opr-rs .opr-rs-franja-todas{display:inline-flex !important; align-items:center !important; gap:2px !important; margin-left:auto !important;
    font-size:.875rem !important; font-weight:700 !important; color:#fff !important; white-space:nowrap !important; min-height:44px !important}
.opr-rs .opr-rs-franja-todas:focus-visible{outline-color:#fff !important}
.opr-rs .opr-rs-franja-todas svg{width:16px !important; height:16px !important}
.opr-rs .opr-rs-franja-pie{display:none !important}
.opr-rs .opr-rs-franja-lista{grid-auto-columns:calc(100cqw - 44px) !important}
.opr-rs .opr-rs-franja-lista .opr-rs-op-texto{-webkit-line-clamp:5 !important}
.opr-rs .opr-rs-carrusel.es-vivo:not(.es-quieto){padding-bottom:58px !important}
.opr-rs .opr-rs-flecha{top:auto !important; bottom:0 !important; margin-top:0 !important}
.opr-rs .opr-rs-flecha.es-antes{left:calc(50% - 52px) !important}
.opr-rs .opr-rs-flecha.es-despues{right:calc(50% - 52px) !important}
}


/* =====================================================================
   Tu opinión: el formulario y su estado
   ===================================================================== */
.opr-rs .opr-rs-tuya{
  padding:clamp(18px,2.4vw,24px) !important; border-radius:var(--radio) !important; background:var(--superficie) !important;
  box-shadow:inset 0 0 0 1px var(--borde), var(--sombra-s) !important;
  display:grid !important; gap:14px !important;
}
.opr-rs .opr-rs-tuya-titulo{display:block !important; font-size:1.0625rem !important; font-weight:800 !important; letter-spacing:-.018em !important; color:var(--tinta) !important}
.opr-rs .opr-rs-tuya > p{font-size:.9375rem !important; color:var(--suave) !important; line-height:1.55 !important}

/* El botón de crear cuenta ocupa el ancho de su caja y puede partir línea: con
   `nowrap` y a 390 px, «Crear cuenta para opinar» se salía por la derecha. */
.opr-rs .opr-rs-tuya.es-fuera .opr-btn{justify-self:stretch !important; width:100% !important; min-height:48px !important; white-space:normal !important; text-align:center !important; line-height:1.25 !important}
.opr-rs .opr-rs-form{display:grid !important; gap:14px !important}
.opr-rs .opr-rs-campo{display:grid !important; gap:6px !important; align-content:start !important; min-width:0 !important}
.opr-rs .opr-rs-campo label, .opr-rs .opr-rs-campo legend{font-size:.875rem !important; font-weight:600 !important; letter-spacing:-.008em !important; color:var(--tinta) !important}
.opr-rs .opr-rs-campo textarea, .opr-rs .opr-rs-campo select{
  width:100% !important; padding:12px 14px !important; min-height:46px !important;
  border-radius:var(--radio-s) !important; background:var(--p50) !important;
  box-shadow:inset 0 0 0 1.5px var(--borde) !important;
  font-size:1rem !important; color:var(--tinta) !important;
}
.opr-rs .opr-rs-campo textarea{min-height:124px !important; resize:vertical !important; line-height:1.55 !important}
.opr-rs .opr-rs-campo select{
  padding-right:38px !important; text-overflow:ellipsis !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475362' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 12px center !important; background-size:16px !important;
}
.opr-rs .opr-rs-campo textarea:focus, .opr-rs .opr-rs-campo select:focus{background-color:var(--superficie) !important; box-shadow:inset 0 0 0 1.5px var(--p500) !important}
.opr-rs .opr-rs-campo.es-mal textarea{box-shadow:inset 0 0 0 1.5px var(--no500) !important}
.opr-rs .opr-rs-pista{display:flex !important; justify-content:space-between !important; gap:12px !important; font-size:.8125rem !important; color:var(--tenue) !important; line-height:1.45 !important}
.opr-rs .opr-rs-pista [data-rs-cuenta]{flex:none !important; white-space:nowrap !important}
.opr-rs .opr-rs-campo.es-mal .opr-rs-pista{color:var(--no600) !important}
.opr-rs .opr-rs-dos{display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:14px !important}


/* --- elegir la nota ---
   El radio está debajo del dibujo, transparente y del tamaño del botón: se
   pulsa el dibujo y se marca el radio. Cada estrella mide 44 px, que es el
   tamaño de dedo, aunque el dibujo sea más pequeño. */
.opr-rs .opr-rs-puntua{display:block !important}
.opr-rs .opr-rs-puntua legend{display:block !important; margin-bottom:2px !important}
.opr-rs .opr-rs-fila{display:flex !important; align-items:center !important; flex-wrap:wrap !important; column-gap:12px !important}
.opr-rs .opr-rs-selector{display:flex !important; margin-left:-7px !important}
.opr-rs .opr-rs-elige{position:relative !important; display:grid !important; place-items:center !important; width:44px !important; height:44px !important;
  border-radius:10px !important; cursor:pointer !important; color:var(--p300) !important}
.opr-rs .opr-rs-elige input{position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; opacity:0 !important; cursor:pointer !important; margin:0 !important}
.opr-rs .opr-rs-elige svg{width:30px !important; height:30px !important; fill:none !important; stroke:currentColor !important; stroke-width:1.5 !important;
  stroke-linejoin:round !important; pointer-events:none !important; transition:transform .12s ease !important}
.opr-rs .opr-rs-elige.es-llena{color:var(--tinta) !important}
.opr-rs .opr-rs-elige.es-llena svg{fill:currentColor !important}
.opr-rs .opr-rs-elige.es-previa{color:var(--p700) !important}
.opr-rs .opr-rs-elige.es-previa svg{fill:currentColor !important}
.opr-rs .opr-rs-elige:active svg{transform:scale(.92) !important}
.opr-rs .opr-rs-elige:has(input:focus-visible){outline:2px solid var(--tinta) !important; outline-offset:-2px !important}
.opr-rs .opr-rs-palabra{font-size:.9375rem !important; font-weight:600 !important; color:var(--suave) !important; font-variant-numeric:tabular-nums !important}
.opr-rs .opr-rs-puntua.es-mal .opr-rs-palabra{color:var(--no600) !important}
.opr-rs .opr-rs-puntua.es-mal .opr-rs-elige{color:var(--no500) !important}
.opr-rs .opr-rs-trampa{position:absolute !important; left:-9999px !important; top:0 !important}
.opr-rs .opr-rs-form .opr-btn{width:100% !important; min-height:48px !important}
.opr-rs .opr-rs-letra{font-size:.8125rem !important; color:var(--tenue) !important; line-height:1.5 !important}
.opr-rs .opr-rs-letra a{color:var(--tinta) !important; text-decoration:underline !important; text-underline-offset:2px !important}
.opr-rs .opr-rs-mensaje{padding:12px 14px !important; border-radius:var(--radio-s) !important; font-size:.9375rem !important; line-height:1.5 !important}
.opr-rs .opr-rs-mensaje.es-bien{background:var(--ok100) !important; color:var(--ok900) !important}
.opr-rs .opr-rs-mensaje.es-mal{background:var(--no100) !important; color:var(--no900) !important}


/* --- lo tuyo, ya enviado --- */
.opr-rs .opr-rs-resumen-tuya{display:grid !important; gap:10px !important}
.opr-rs .opr-rs-estado{display:flex !important; align-items:center !important; gap:8px !important; font-size:.875rem !important; font-weight:700 !important; color:var(--tinta) !important}
.opr-rs .opr-rs-punto{width:9px !important; height:9px !important; border-radius:999px !important; background:var(--p400) !important; flex:none !important}
.opr-rs .opr-rs-tuya.es-pendiente .opr-rs-punto{background:var(--av500) !important}
.opr-rs .opr-rs-tuya.es-publicada .opr-rs-punto{background:var(--ok500) !important}
.opr-rs .opr-rs-tuya.es-rechazada .opr-rs-punto{background:var(--no500) !important}
.opr-rs .opr-rs-botones{display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:10px 18px !important; margin-top:2px !important}
.opr-rs .opr-rs-botones .opr-btn{padding:11px 20px !important}
.opr-rs .opr-rs-enlace{font-size:.9375rem !important; font-weight:600 !important; color:var(--suave) !important;
  text-decoration:underline !important; text-underline-offset:3px !important; min-height:38px !important; padding:0 2px !important}
.opr-rs .opr-rs-enlace:hover{color:var(--tinta) !important}
.opr-rs .opr-rs-seguro{display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:10px 16px !important;
  padding:12px 14px !important; border-radius:var(--radio-s) !important; background:var(--no100) !important; color:var(--no900) !important; font-size:.9375rem !important}
.opr-rs .opr-rs-seguro .opr-btn{padding:10px 18px !important; background:var(--no600) !important; color:#fff !important}
.opr-rs .opr-rs-seguro .opr-rs-enlace{color:var(--no900) !important}


/* =====================================================================
   El aviso de Mi progreso
   ---------------------------------------------------------------------
   Va como una banda más de la página: de lado a lado, sin margen, y con su
   turno de claro o gris. El fondo lo pinta una sombra enorme recortada con
   `clip-path`, igual que las bandas del progreso: `100vw` incluiría la barra
   de desplazamiento y la página se desplazaría de lado.
   ===================================================================== */
.opr-rs.opr-rs-aviso{margin:0 !important; background:transparent !important}
.opr-rs .opr-rs-banda{padding:clamp(26px,3.4vw,38px) 0 !important}
.opr-rs .opr-rs-banda.es-tono, .opr-rs .opr-rs-banda.es-tono-a{background:var(--superficie) !important;
  box-shadow:0 0 0 100vmax var(--superficie) !important; clip-path:inset(0 -100vmax) !important}
.opr-rs .opr-rs-banda.es-tono-b{background:#F1F4F8 !important;
  box-shadow:0 0 0 100vmax #F1F4F8 !important; clip-path:inset(0 -100vmax) !important}
.opr-rs .opr-rs-aviso-caja{display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,460px) !important;
  gap:clamp(20px,3vw,48px) !important; align-items:start !important}
.opr-rs .opr-rs-aviso-texto{display:grid !important; gap:10px !important; align-content:start !important; justify-items:start !important}
.opr-rs .opr-rs-aviso-h{font-size:clamp(1.25rem,2.2vw,1.5rem) !important; font-weight:800 !important; letter-spacing:-.02em !important;
  line-height:1.15 !important; color:var(--tinta) !important}
.opr-rs .opr-rs-aviso-texto p{font-size:.9375rem !important; color:var(--suave) !important; line-height:1.6 !important; max-width:52ch !important}
.opr-rs .opr-rs-aviso-texto .opr-rs-letra{font-size:.8125rem !important; color:var(--tenue) !important}
.opr-rs .opr-rs-banda.es-tono-b .opr-rs-campo textarea, .opr-rs .opr-rs-banda.es-tono-b .opr-rs-campo select{background-color:var(--p50) !important}


/* Sin opiniones publicadas: la nota y tu opinión, una al lado de la otra. */
.opr-rs .opr-rs-cuerpo.es-sin-lista{grid-template-columns:minmax(0,360px) minmax(0,560px) !important;
  grid-template-areas:"arriba lado" !important; grid-template-rows:auto !important}


/* En la columna estrecha, los dos desplegables uno debajo del otro: lado a
   lado se cortaban en «Prefiero n…». */
.opr-rs .opr-rs-cuerpo:not(.es-sin-lista) .opr-rs-lado .opr-rs-dos{grid-template-columns:1fr !important}
@media (max-width:900px){
.opr-rs .opr-rs-cuerpo.es-sin-lista{grid-template-columns:1fr !important; grid-template-areas:"arriba" "lado" !important}
.opr-rs .opr-rs-cuerpo{grid-template-columns:1fr !important; grid-template-areas:"arriba" "lista" "lado" !important; grid-template-rows:auto !important}
.opr-rs .opr-rs-aviso-caja{grid-template-columns:1fr !important}
}
@media (max-width:520px){
.opr-rs .opr-rs-dos{grid-template-columns:1fr !important}
.opr-rs .opr-rs-op{padding:16px !important}
}
@media (prefers-reduced-motion:reduce){
.opr-rs .opr-rs-elige svg{transition:none !important}
}


/* Y que `hidden` esconda de verdad. Al final y con (0,3,0): las reglas de
   arriba que ponen `display:grid` pesan (0,2,0) con el anidado y le ganarían
   a `.opr [hidden]` del núcleo. Es la trampa número 4 del documento 02. */
.opr-rs [hidden][hidden]{display:none !important}
.opr-rs.opr-rs-aviso[hidden]{display:none !important}