/* =====================================================================
   Mi progreso · el calendario
   ---------------------------------------------------------------------
   OJO CON LOS COMENTARIOS: aquí dentro no puede haber una llave suelta.
   `anidar()` busca bloques por llaves y no distingue los comentarios, así que
   una llave en un comentario se come las reglas que vengan detrás. El
   `build.py` se para si encuentra una, pero conviene saberlo antes.
   ===================================================================== */

/* EL PAPEL DE LA PÁGINA, DE LADO A LADO
   ---------------------------------------------------------------------
   El fondo lo pinta `.opr` del núcleo, y esta caja mide lo que mide el
   contenido del tema: en el móvil se veía una franja blanca a los dos lados de
   la portada y del calendario, mientras las bandas de «Mi progreso» y de
   Batallas sí llegaban. Lo vio Sergio en una captura del móvil.

   NO SE ESTIRA ESTA CAJA, SE ESTIRA CADA SECCIÓN. Estirar esta obligaría a
   recortarla con `clip-path`, y dentro vive la sala de las batallas, que es
   `position:fixed`: un `clip-path` en un antepasado suyo la recorta, y no se
   nota en la caja —el rectángulo sigue siendo correcto— solo en que no se
   pinta. Batallas queda fuera con un `:not()` porque su banda ya se estira
   sola.

   Y por eso el aire de arriba, el de abajo y el que había entre la portada y lo
   de debajo dejan de ser relleno y margen de ESTA caja y pasan a ser relleno de
   las secciones: lo que queda entre dos secciones no lo pinta nadie, y ahí
   volvería a asomar el blanco del tema de lado a lado. */
.opr-ca.opr-ca-pagina{padding:0 !important}
.opr-ca.opr-ca-pagina>*{max-width:1180px !important; margin-left:auto !important; margin-right:auto !important;
  padding-left:clamp(18px,4vw,40px) !important; padding-right:clamp(18px,4vw,40px) !important}
.opr-ca.opr-ca-pagina>*:not(.opr-bt-panel){
  box-shadow:0 0 0 100vmax var(--fondo) !important;
  clip-path:inset(0 -100vmax) !important}
.opr-ca.opr-ca-pagina>*:first-child{padding-top:clamp(28px,4vw,52px) !important}
.opr-ca.opr-ca-pagina>*:last-child{padding-bottom:clamp(60px,7vw,90px) !important}
.opr-ca .opr-ca-oculto{position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip-path:inset(50%) !important;
  white-space:nowrap !important}


/* --- la cabecera --- */
/* El aire va en relleno y no en margen: un margen queda fuera de la caja y ahí
   el fondo de la sección no llega. */
.opr-ca .opr-ca-cabeza{margin-bottom:0 !important; padding-bottom:clamp(20px,2.6vw,32px) !important}
.opr-ca .opr-ca-panel{padding-top:clamp(24px,3.4vw,40px) !important}
.opr-ca .opr-ca-rotulo{font-size:.9375rem !important; font-weight:600 !important; color:var(--suave) !important; margin-bottom:8px !important}
.opr-ca .opr-ca-h1{font-size:clamp(1.9rem,3.6vw,2.7rem) !important; font-weight:800 !important; letter-spacing:-.03em !important;
  line-height:1.06 !important; color:var(--tinta) !important}
.opr-ca .opr-ca-sub{margin-top:12px !important; font-size:1rem !important; color:var(--suave) !important; max-width:58ch !important; line-height:1.6 !important}


/* --- sin sesión --- */
.opr-ca .opr-ca-fuera{background:var(--superficie) !important; border:1px solid var(--borde) !important;
  border-radius:var(--radio) !important; padding:clamp(24px,3.4vw,40px) !important; max-width:640px !important}
.opr-ca .opr-ca-fuera h2{font-size:1.25rem !important; font-weight:800 !important; letter-spacing:-.02em !important; color:var(--tinta) !important}
.opr-ca .opr-ca-fuera p{margin-top:10px !important; font-size:.9375rem !important; color:var(--suave) !important; line-height:1.6 !important; max-width:52ch !important}
.opr-ca .opr-ca-fuera-botones{display:flex !important; gap:10px !important; flex-wrap:wrap !important; margin-top:20px !important}


/* --- el rótulo del calendario ---
   Desde la v1.0.10 esta página lleva dos paneles, así que cada uno dice lo que
   es. Antes lo decía la cabecera de la página, que ahora presenta a los dos. */
.opr-ca .opr-ca-titulo{margin-bottom:16px !important}
.opr-ca .opr-ca-h2{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-ca .opr-ca-titulo p{margin-top:8px !important; font-size:.9375rem !important; color:var(--suave) !important;
  line-height:1.6 !important; max-width:60ch !important}


/* --- tus fechas: una sola caja, negra ---
   Negra porque es lo que manda en la pantalla: cuánto queda. Y una sola,
   porque dos cajas diciendo lo mismo compiten en vez de ayudar. */
.opr-ca .opr-ca-fechas{background:var(--p950) !important; border-radius:var(--radio) !important;
  padding:18px 22px !important; margin-bottom:18px !important}
.opr-ca .opr-ca-fechas-titulo{display:block !important; font-size:.75rem !important; font-weight:700 !important;
  color:rgba(255,255,255,.55) !important; margin-bottom:12px !important; text-transform:none !important}
.opr-ca .opr-ca-fechas ul{display:grid !important; gap:12px !important}
.opr-ca .opr-ca-fechas li{display:grid !important; grid-template-columns:auto minmax(0,1fr) auto !important;
  gap:6px 16px !important; align-items:baseline !important}
.opr-ca .opr-ca-cuantos{font-size:1.75rem !important; font-weight:800 !important; letter-spacing:-.03em !important; color:#fff !important;
  line-height:1 !important; font-variant-numeric:tabular-nums !important; white-space:nowrap !important; min-width:74px !important}
.opr-ca .opr-ca-cuantos small{display:block !important; font-size:.6875rem !important; font-weight:600 !important;
  color:rgba(255,255,255,.55) !important; letter-spacing:0 !important; margin-top:4px !important}
.opr-ca .opr-ca-fechas-que{min-width:0 !important}
.opr-ca .opr-ca-fechas-que b{display:block !important; color:#fff !important; font-size:1rem !important; font-weight:700 !important;
  letter-spacing:-.01em !important; overflow-wrap:anywhere !important}
.opr-ca .opr-ca-fechas-que span{display:block !important; color:rgba(255,255,255,.68) !important; font-size:.8125rem !important;
  margin-top:3px !important; line-height:1.45 !important}


/* El sello de «oficial»: filete y palabra, como en las convocatorias. Nada de
   píldora de color, que aquí el color ya significa otra cosa. */
.opr-ca .opr-ca-oficial{display:inline-block !important; font-size:.6875rem !important; font-weight:700 !important; font-style:normal !important;
  color:rgba(255,255,255,.9) !important; border-left:2px solid rgba(255,255,255,.5) !important;
  padding-left:7px !important; margin-right:8px !important; vertical-align:2px !important}


/* --- las que ya se han hecho, plegadas al pie --- */
.opr-ca .opr-ca-pasadas{margin-top:16px !important; border-top:1px solid rgba(255,255,255,.14) !important; padding-top:12px !important}
.opr-ca .opr-ca-pasadas summary{
  cursor:pointer !important; list-style:none !important; color:rgba(255,255,255,.6) !important; font-size:.8125rem !important;
  font-weight:600 !important; min-height:38px !important; display:flex !important; align-items:center !important; gap:8px !important;
}
.opr-ca .opr-ca-pasadas summary::-webkit-details-marker{display:none !important}
.opr-ca .opr-ca-pasadas summary:hover{color:#fff !important}

/* La punta la dibujamos: `list-style:none` se lleva por delante la del
   navegador. Y sin punto y coma dentro de la url(), que `blindar()` parte la
   declaración por ahí. */
.opr-ca .opr-ca-pasadas summary::after{
  content:'' !important; width:11px !important; height:8px !important; flex:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' opacity='.6'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-size:11px 8px !important;
  transition:transform .14s ease !important;
}
.opr-ca .opr-ca-pasadas[open] summary::after{transform:rotate(180deg) !important}
.opr-ca .opr-ca-pasadas ul{display:grid !important; gap:8px !important; margin-top:10px !important}
.opr-ca .opr-ca-pasadas li{display:flex !important; gap:12px !important; align-items:baseline !important; flex-wrap:wrap !important;
  font-size:.875rem !important; color:rgba(255,255,255,.62) !important; line-height:1.4 !important}
.opr-ca .opr-ca-pasadas li b{font-weight:700 !important; color:rgba(255,255,255,.8) !important; white-space:nowrap !important;
  font-variant-numeric:tabular-nums !important}
.opr-ca .opr-ca-pasadas li span{min-width:0 !important; overflow-wrap:anywhere !important}
.opr-ca .opr-ca-fechas-quitar{background:transparent !important; border:0 !important; color:rgba(255,255,255,.6) !important;
  font-size:.8125rem !important; cursor:pointer !important; text-decoration:underline !important; padding:10px !important;
  min-height:40px !important; align-self:center !important}
.opr-ca .opr-ca-fechas-quitar:hover{color:#fff !important}


/* --- fijar el examen desde una convocatoria --- */
.opr-ca .opr-ca-fijar{display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; gap:16px !important; align-items:center !important;
  background:var(--superficie) !important; border:1px solid var(--borde) !important; border-radius:var(--radio) !important;
  padding:16px 20px !important; margin-bottom:18px !important}
.opr-ca .opr-ca-fijar-texto b{display:block !important; font-size:.9375rem !important; font-weight:700 !important; color:var(--tinta) !important}
.opr-ca .opr-ca-fijar-texto span{display:block !important; font-size:.8125rem !important; color:var(--tenue) !important; margin-top:4px !important;
  line-height:1.5 !important; max-width:62ch !important}
.opr-ca .opr-ca-fijar-control{display:flex !important; gap:8px !important; align-items:center !important; flex-wrap:wrap !important}
.opr-ca .opr-ca-fijar select{min-height:42px !important; padding:0 12px !important; border-radius:var(--radio-s) !important;
  background:var(--p50) !important; box-shadow:inset 0 0 0 1.5px var(--borde) !important; color:var(--tinta) !important;
  font-size:.875rem !important; max-width:100% !important}


/* --- el cuerpo: calendario y día --- */
.opr-ca .opr-ca-cuerpo{display:grid !important; grid-template-columns:minmax(0,1fr) 340px !important;
  gap:clamp(18px,2.4vw,30px) !important; align-items:start !important}
.opr-ca .opr-ca-cal{background:var(--superficie) !important; border:1px solid var(--borde) !important;
  border-radius:var(--radio) !important; padding:clamp(14px,1.8vw,20px) !important; min-width:0 !important}

/* SIN `flex-wrap`. Esa es la corrección: con él, un mes largo empujaba las
   flechas a la línea de abajo y la barra cambiaba de alto según el mes. Ahora
   lo que cede es el desplegable, que se estrecha; los botones no. */
.opr-ca .opr-ca-barra{display:flex !important; align-items:center !important; justify-content:space-between !important;
  margin-bottom:14px !important; gap:12px !important; flex-wrap:nowrap !important}
.opr-ca .opr-ca-elegir{display:flex !important; gap:8px !important; align-items:center !important; min-width:0 !important; flex:1 1 auto !important}

/* La flecha se dibuja aquí, y no es un capricho: el núcleo lleva
   `appearance:none` en todo lo que sea un control, así que un `select` se
   queda sin la punta de flecha del navegador y deja de parecer un desplegable.
   Va como imagen de fondo —una punta, monocroma, del color de la tinta— y el
   hueco se hace con el relleno de la derecha.

   Y SIN `;charset=utf-8` DENTRO DE LA URL. `blindar()` reparte los `!important`
   partiendo el cuerpo de la regla por los puntos y coma, así que un punto y
   coma dentro de una `url()` la corta por la mitad y la flecha no aparece:
   pasó a la primera. El `build.py` ahora se planta si encuentra uno. */
/* `width:auto` NO SOBRA, y esto costó una subida al sitio.
   Astra trae un `width:100%` para todo `select` en su hoja. Aquí no se declaraba ancho
   ninguno —se daba por hecho que un `select` se ajusta a su texto—, así que
   mandaba el tema: el año ocupaba la barra entera y el mes se quedaba en 40 px,
   con la flecha sola. En la vista previa no salía porque allí no hay tema; por
   eso desde hoy la vista previa carga una imitación de Astra.
   Lo que no se declara, lo declara otro. */
.opr-ca .opr-ca-elegir select{
  width:auto !important;
  min-height:40px !important; padding:0 30px 0 10px !important; border-radius:var(--radio-s) !important; cursor:pointer !important;
  box-shadow:inset 0 0 0 1.5px var(--borde) !important;
  color:var(--tinta) !important; font-size:1rem !important; font-weight:700 !important; letter-spacing:-.014em !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23121A22' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 10px center !important;
  background-size:11px 8px !important;
  background-color:transparent !important;
}
.opr-ca .opr-ca-elegir select:hover{background-color:var(--p100) !important}
.opr-ca .opr-ca-elegir select:focus-visible{box-shadow:inset 0 0 0 1.5px var(--p500) !important}

/* El mes cede sitio; el año no, que son cuatro cifras y no se recortan. */
.opr-ca #opr-ca-mes-sel{width:auto !important; min-width:0 !important; flex:1 1 auto !important; max-width:172px !important}
.opr-ca #opr-ca-anio-sel{width:auto !important; flex:none !important}
.opr-ca .opr-ca-nav{display:flex !important; gap:6px !important; flex:none !important}
.opr-ca .opr-ca-nav button{width:40px !important; height:40px !important; border-radius:var(--radio-s) !important; background:transparent !important;
  box-shadow:inset 0 0 0 1.5px var(--borde) !important; color:var(--tinta) !important; cursor:pointer !important;
  display:grid !important; place-items:center !important; font-size:1rem !important; line-height:1 !important}
.opr-ca .opr-ca-nav button:hover{background:var(--p100) !important}


/* OJO CON EL SELECTOR, QUE AQUÍ ESTABA EL «Hoy» DESCUADRADO
   ---------------------------------------------------------------------
   Estaba escrito `.opr-ca-hoy-btn`, que después de anidar pesa (0,2,0), y
   enfrente tenía `.opr-ca .opr-ca-nav button`, que pesa (0,2,1) por el nombre
   de etiqueta. Ganaba la de arriba y su `width:40px` aplastaba el `width:auto`:
   la palabra «Hoy» no cabía y salía cortada. Entre dos `!important` manda la
   especificidad, y una etiqueta suma. Con el padre delante pesa (0,3,0) y gana.
   Es la misma trampa del `[hidden]` del banner de cookies, de otra manera. */
.opr-ca .opr-ca-nav .opr-ca-hoy-btn{padding:0 14px !important; width:auto !important; min-width:56px !important;
  font-size:.875rem !important; font-weight:600 !important}
.opr-ca .opr-ca-dias, .opr-ca .opr-ca-rejilla{display:grid !important; grid-template-columns:repeat(7,minmax(0,1fr)) !important; gap:5px !important}
.opr-ca .opr-ca-dias div{text-align:center !important; font-size:.6875rem !important; font-weight:700 !important; color:var(--tenue) !important;
  padding-bottom:8px !important; letter-spacing:.02em !important}
.opr-ca .opr-ca-celda{position:relative !important; min-height:84px !important; border-radius:var(--radio-s) !important;
  background:var(--p50) !important; border:1.5px solid transparent !important; padding:7px 7px 6px !important;
  text-align:left !important; cursor:pointer !important; display:block !important; width:100% !important; min-width:0 !important; overflow:hidden !important;
  transition:border-color .12s, background .12s !important}
.opr-ca .opr-ca-celda:hover{border-color:var(--borde2) !important}
.opr-ca .opr-ca-celda.es-fuera{background:transparent !important; cursor:default !important}
.opr-ca .opr-ca-celda.es-fuera .opr-ca-n{color:var(--p300) !important}
.opr-ca .opr-ca-celda.es-hoy{background:var(--superficie) !important; border-color:var(--tinta) !important}
.opr-ca .opr-ca-celda[aria-pressed="true"]{background:var(--superficie) !important; border-color:var(--p500) !important;
  box-shadow:0 0 0 3px var(--p100) !important}
.opr-ca .opr-ca-n{font-size:.8125rem !important; font-weight:700 !important; color:var(--suave) !important; display:block !important; margin-bottom:5px !important}
.opr-ca .opr-ca-celda.es-hoy .opr-ca-n{color:var(--tinta) !important}
.opr-ca .opr-ca-chip{display:block !important; font-size:.6875rem !important; line-height:1.3 !important; border-radius:5px !important;
  padding:2px 5px !important; margin-bottom:3px !important; overflow:hidden !important; text-overflow:ellipsis !important;
  white-space:nowrap !important; font-weight:600 !important}
.opr-ca .opr-ca-chip.es-hecho{opacity:.5 !important; text-decoration:line-through !important}
.opr-ca .opr-ca-mas{font-size:.625rem !important; color:var(--tenue) !important; font-weight:600 !important}
.opr-ca .opr-ca-marca{position:absolute !important; top:6px !important; right:6px !important; width:8px !important; height:8px !important; border-radius:50% !important;
  background:var(--tinta) !important}


/* --- el panel del día --- */
.opr-ca .opr-ca-lado{min-width:0 !important}
.opr-ca .opr-ca-dia{background:var(--superficie) !important; border:1px solid var(--borde) !important;
  border-radius:var(--radio) !important; padding:clamp(16px,1.8vw,20px) !important; position:sticky !important; top:16px !important}
.opr-ca .opr-ca-dia h2{font-size:1rem !important; font-weight:800 !important; letter-spacing:-.014em !important; color:var(--tinta) !important}
.opr-ca .opr-ca-cuando{font-size:.8125rem !important; color:var(--tenue) !important; margin-top:2px !important; margin-bottom:14px !important}
.opr-ca .opr-ca-lista{display:grid !important; gap:8px !important; margin-bottom:14px !important}
.opr-ca .opr-ca-nota{display:grid !important; grid-template-columns:auto minmax(0,1fr) auto !important; gap:10px !important;
  align-items:start !important; padding:10px 11px !important; border-radius:var(--radio-s) !important; background:var(--p50) !important}
.opr-ca .opr-ca-punto{width:10px !important; height:10px !important; border-radius:3px !important; margin-top:6px !important}
.opr-ca .opr-ca-nota p{font-size:.875rem !important; line-height:1.45 !important; color:var(--tinta) !important; word-break:break-word !important}
.opr-ca .opr-ca-nota.es-hecho p{color:var(--tenue) !important; text-decoration:line-through !important}
.opr-ca .opr-ca-acciones{display:flex !important; gap:2px !important}
.opr-ca .opr-ca-acciones button{width:38px !important; height:38px !important; border-radius:8px !important; background:transparent !important;
  border:0 !important; cursor:pointer !important; color:var(--tenue) !important; display:grid !important; place-items:center !important; font-size:.9375rem !important}
.opr-ca .opr-ca-acciones button:hover{background:var(--p200) !important; color:var(--tinta) !important}
.opr-ca .opr-ca-vacio{font-size:.875rem !important; color:var(--tenue) !important; line-height:1.5 !important; margin-bottom:14px !important}
.opr-ca .opr-ca-form textarea{width:100% !important; padding:10px 12px !important; min-height:66px !important; border-radius:var(--radio-s) !important;
  background:var(--p50) !important; box-shadow:inset 0 0 0 1.5px var(--borde) !important; font-size:.9375rem !important;
  color:var(--tinta) !important; resize:vertical !important; line-height:1.5 !important}
.opr-ca .opr-ca-form textarea:focus{background:var(--superficie) !important; box-shadow:inset 0 0 0 1.5px var(--p500) !important}
.opr-ca .opr-ca-colores{display:flex !important; gap:7px !important; margin:11px 0 12px !important; flex-wrap:wrap !important}
.opr-ca .opr-ca-color{width:38px !important; height:38px !important; border-radius:9px !important; cursor:pointer !important; border:0 !important; position:relative !important}
.opr-ca .opr-ca-color[aria-pressed="true"]::after{content:'' !important; position:absolute !important; inset:-4px !important;
  border-radius:12px !important; box-shadow:0 0 0 2px var(--tinta) !important}
.opr-ca .opr-ca-form .opr-btn{width:100% !important; min-height:44px !important}


/* El aviso de que algo no ha salido. Ámbar, que en este sistema es aviso. */
.opr-ca .opr-ca-aviso{margin-top:12px !important; font-size:.8125rem !important; line-height:1.45 !important; color:#8A5A00 !important;
  background:#FFF7E6 !important; border-radius:var(--radio-s) !important; padding:10px 12px !important}


/* --- la leyenda --- */
.opr-ca .opr-ca-leyenda{margin-top:22px !important; background:var(--superficie) !important; border:1px solid var(--borde) !important;
  border-radius:var(--radio) !important; padding:16px 18px !important}
.opr-ca .opr-ca-leyenda h3{font-size:.875rem !important; font-weight:700 !important; color:var(--tinta) !important; margin-bottom:4px !important}
.opr-ca .opr-ca-leyenda>p{font-size:.75rem !important; color:var(--tenue) !important; margin-bottom:12px !important; line-height:1.45 !important}
.opr-ca .opr-ca-leyenda ul{display:grid !important; gap:8px !important}
.opr-ca .opr-ca-leyenda li{display:grid !important; grid-template-columns:auto minmax(0,1fr) !important; gap:10px !important; align-items:center !important}
.opr-ca .opr-ca-leyenda .opr-ca-punto{width:12px !important; height:12px !important; border-radius:4px !important; margin-top:0 !important}
.opr-ca .opr-ca-leyenda input{font-size:.8125rem !important; color:var(--tinta) !important; background:transparent !important;
  border:0 !important; border-bottom:1px dashed var(--borde2) !important; padding:8px 0 !important; width:100% !important; min-height:38px !important}
.opr-ca .opr-ca-leyenda input:focus{border-bottom-color:var(--tinta) !important; background:var(--p50) !important}

/* El fijo no lleva campo: no hay raya de puntos que invite a escribir encima. */
.opr-ca .opr-ca-leyenda .opr-ca-fijo{font-size:.8125rem !important; color:var(--tinta) !important; font-weight:600 !important;
  padding:8px 0 !important; min-height:38px !important; display:flex !important; align-items:center !important; gap:8px !important}
.opr-ca .opr-ca-leyenda .opr-ca-fijo small{font-weight:400 !important; color:var(--tenue) !important; font-size:.75rem !important}


/* --- estrecho --- */

@media (max-width:900px){
.opr-ca .opr-ca-cuerpo{grid-template-columns:minmax(0,1fr) !important}
.opr-ca .opr-ca-dia{position:static !important}
.opr-ca .opr-ca-celda{min-height:62px !important}
.opr-ca .opr-ca-chip{display:none !important}
.opr-ca .opr-ca-mas{display:none !important}
.opr-ca .opr-ca-puntitos{display:flex !important; gap:3px !important; flex-wrap:wrap !important}
.opr-ca .opr-ca-puntitos i{width:6px !important; height:6px !important; border-radius:2px !important; display:block !important}
.opr-ca .opr-ca-fijar{grid-template-columns:minmax(0,1fr) !important}
.opr-ca .opr-ca-fijar select{width:100% !important}
}
@media (min-width:901px){
.opr-ca .opr-ca-puntitos{display:none !important}
}
@media (max-width:560px){
.opr-ca .opr-ca-barra{gap:8px !important}
.opr-ca .opr-ca-elegir{gap:6px !important}
.opr-ca .opr-ca-elegir select{padding:0 24px 0 7px !important; font-size:.9375rem !important;
    background-position:right 7px center !important}
.opr-ca #opr-ca-mes-sel{max-width:none !important}
.opr-ca .opr-ca-nav{gap:4px !important}
.opr-ca .opr-ca-fechas{padding:16px !important}
.opr-ca .opr-ca-fechas li{grid-template-columns:auto minmax(0,1fr) !important; row-gap:8px !important}
.opr-ca .opr-ca-fechas-quitar{grid-column:1 / -1 !important; justify-self:start !important; padding-left:0 !important}
.opr-ca .opr-ca-cal{padding:12px !important}
.opr-ca .opr-ca-dias, .opr-ca .opr-ca-rejilla{gap:3px !important}
.opr-ca .opr-ca-celda{padding:5px 4px !important}
}


/* --- lo que se esconde, se esconde ---
   Y esto va al final del fichero a propósito. El atributo `hidden` pesa lo
   mismo que una clase, así que empata con cualquier regla de sección que ponga
   `display` y decide el orden. Con la raíz delante y la clase pegada, estas
   dos pesan (0,3,0) y ganan siempre. Se comprueba mirando el `display`
   calculado, nunca el atributo: el atributo puede estar puesto y la caja
   verse igual. */
.opr-ca .opr-ca-fechas[hidden]{display:none !important}
.opr-ca .opr-ca-pasadas[hidden]{display:none !important}
.opr-ca .opr-ca-fijar[hidden]{display:none !important}
.opr-ca .opr-ca-vacio[hidden]{display:none !important}
.opr-ca .opr-ca-aviso[hidden]{display:none !important}